中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android之Actionbar頂部標簽的使用

發布時間:2020-07-30 07:01:27 來源:網絡 閱讀:2176 作者:xuzw13 欄目:移動開發

    今天寫了個示例代碼,就是使用Actionbar類實現頂部標簽切換功能。如果所示。

  Android之Actionbar頂部標簽的使用


使用最新的adt工具,創建項目的時候都會帶一個android-support-v7-appcompat的類庫項目,

這個libproject中有我們要用的ActionBar,可以適配2.1的Android系統。

廢話不多說,直接上代碼。


1、修改activity_main.xml,增加ViewPager。

<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/pager"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

2、修改MainActivity中的代碼,讓其繼承ActionBarActivity

public class MainActivity extends ActionBarActivity implements TabListener {


3、創建TabsPagerAdapter繼承FragmentPagerAdapter

package com.example.tabswithswie.adatper;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

import com.example.tabswithswie.fragments.AppFragment;
import com.example.tabswithswie.fragments.GamesFragment;
import com.example.tabswithswie.fragments.MoviesFragment;

public class TabsPagerAdapter extends FragmentPagerAdapter {

    public TabsPagerAdapter(FragmentManager fm) {
        super(fm);
        // TODO Auto-generated constructor stub
    }

    @Override
    public Fragment getItem(int index) {
        switch (index) {
        case 0:
            return new AppFragment();
        case 1:
            return new GamesFragment();
        case 2:
            return new MoviesFragment();
     
        }
        return null;
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return 3;
    }

}

4、創建AppFragment繼承android.support.v4.app.Fragment

package com.example.tabswithswie.fragments;

import com.example.tabswithswie.R;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class AppFragment extends Fragment {
    
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        return inflater.inflate(R.layout.fragment_app, container, false);
    }
}

5、創建布局文件fragment_app.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#43ff00ff" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:layout_centerInParent="true"
        android:text="這個是應用界面"
        android:textAppearance="?android:attr/textAppearanceLarge" />

</RelativeLayout>


6、創建GamesFragment繼承android.support.v4.app.Fragment

package com.example.tabswithswie.fragments;

import com.example.tabswithswie.R;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class GamesFragment extends Fragment {
    
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        return inflater.inflate(R.layout.fragment_game, container, false);
    }
}

7、創建布局文件fragment_game.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:background="#9445f353">

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:layout_centerInParent="true"
        android:text="游戲"
        android:textAppearance="?android:attr/textAppearanceLarge" />

</RelativeLayout>

8、創建MoviesFragment繼承android.support.v4.app.Fragment

package com.example.tabswithswie.fragments;

import com.example.tabswithswie.R;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class MoviesFragment extends Fragment {
    
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        return inflater.inflate(R.layout.fragment_movie, container, false);
    }
}

9、創建布局文件fragment_movie.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#34fef443" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:layout_centerInParent="true"
        android:text="視頻"
        android:textAppearance="?android:attr/textAppearanceLarge" />

</RelativeLayout>


10、回到 MainActivity類,添加Tabs到ActionBar中,并處理點擊滑動事件。完整代碼

package com.example.tabswithswie;

import android.os.Bundle;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBar.Tab;
import android.support.v7.app.ActionBar.TabListener;
import android.support.v7.app.ActionBarActivity;

import com.example.tabswithswie.adatper.TabsPagerAdapter;

public class MainActivity extends ActionBarActivity implements TabListener {
    private ViewPager viewPager;
    private ActionBar actionBar; 
    private TabsPagerAdapter mTabsPagerAdapter;
    
    private String[] tabs ={"應用","游戲","視頻"};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //獲取viewpager
        viewPager = (ViewPager) findViewById(R.id.pager);
        //實例化pageradapter
        mTabsPagerAdapter = new TabsPagerAdapter(getSupportFragmentManager());
        viewPager.setAdapter(mTabsPagerAdapter);
        //獲取適配的actionbar
        actionBar = getSupportActionBar();
        //設置home按鈕不可點擊
        actionBar.setHomeButtonEnabled(false);
        //設置頂部導航的模式  -tabs
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
        //添加標簽
        for(String tab:tabs)
        {
            actionBar.addTab(actionBar.newTab().setText(tab).setTabListener(this));
         }
        //設置ViewPager切換時候的監聽事件
        viewPager.setOnPageChangeListener(new OnPageChangeListener() {
            
            @Override
            public void onPageSelected(int position) {
                //頁面滑動,頂部標簽跟著改變
                 actionBar.setSelectedNavigationItem(position);
            }
            
            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
                // TODO Auto-generated method stub
                
            }
            
            @Override
            public void onPageScrollStateChanged(int arg0) {
                // TODO Auto-generated method stub
                
            }
        });
    }
     

    @Override
    public void onTabReselected(Tab arg0, FragmentTransaction arg1) {
        // TODO Auto-generated method stub
        
    }

    @Override
    public void onTabSelected(Tab tab, FragmentTransaction fragmentTransaction) {
        //tab選中,切換viewpager
        viewPager.setCurrentItem(tab.getPosition());
    }

    @Override
    public void onTabUnselected(Tab arg0, FragmentTransaction arg1) {
        // TODO Auto-generated method stub
        
    }

     
}


代碼就是這樣的,搞定收工了。示例代碼下載

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阿拉善右旗| 宜城市| 准格尔旗| 鹤山市| 阿尔山市| 博客| 吉首市| 四平市| 科尔| 绥宁县| 五台县| 松潘县| 陆河县| 塘沽区| 许昌县| 灵台县| 铁岭县| 白山市| 新建县| 临颍县| 莱西市| 韶山市| 德保县| 桑植县| 东源县| 抚州市| 吴江市| 辽宁省| 中西区| 宁明县| 乌拉特中旗| 永丰县| 枣庄市| 新竹县| 中方县| 饶河县| 横山县| 桐柏县| 尼木县| 龙泉市| 柯坪县|