欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android巧用ActionBar實(shí)現(xiàn)tab導(dǎo)航效果

 更新時(shí)間:2016年05月25日 15:10:48   作者:summerpxy  
這篇文章主要為大家詳細(xì)介紹了Android巧用ActionBar實(shí)現(xiàn)tab導(dǎo)航效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了ActionBar實(shí)現(xiàn)tab導(dǎo)航效果的具體代碼,供大家參考,具體內(nèi)容如下

先來說一說基礎(chǔ)知識:

一、基本使用方法

1.獲取ActionBar

 獲取actionbar很簡單,在activity中,ationbar=this.getActionBar();

2.顯示/隱藏

設(shè)置actionBar的顯示/隱藏,可以使用show()和hide()方法。

3.設(shè)置MenuItem

通過設(shè)置menuItem,可以使menuItem成為actionbar上的item。

setShowAsAction(int actionenum),這個(gè)actionenum支持的參數(shù)如下:

   SHOW_AS_ACTION_ALWAYS:  總是將該menuitem顯示在actionbar上

   SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW:將該ActionView折疊成普通菜單項(xiàng)

   SHOW_AS_ACTION_IF_ROOM:當(dāng)actionbar位置足夠時(shí)才顯示在actionbar上。

   SHOW_AS_ACTION_NEVER:不將該menuitem顯示在actionbar上。

   SHOW_AS_ACTION_WITH_TEXT:把menuItem顯示在actionbar上,并且顯示該菜單項(xiàng)的文本。

也可以在xml屬性,定義item的屬性 android:showAsAction來設(shè)置。

4.啟用程序圖標(biāo)導(dǎo)航

setDisplayHomeAsUpEnabled(boolean showHomeAsUp):設(shè)置是否應(yīng)該將應(yīng)用程序圖標(biāo)轉(zhuǎn)變成可點(diǎn)擊的圖標(biāo),并且在圖標(biāo)上添加一個(gè)向左的箭頭。

setDisplayOptions(int options):控制actionbar的顯示選項(xiàng)。opitions選項(xiàng)為:

      DISPLAY_HOME_AS_UP

      DISPLAY_SHOW_CUSTOM

      DISPLAY_SHOW_HOME

      DISPLAY_SHOW_TITLE

      DISPLAY_USE_LOGO

      NAVIGATION_MODE_LIST

      NAVIGATION_MODE_STANDARD

      NAVIGATION_MODE_TABS

setDislayShowHomeEnabled(boolean showHome):設(shè)置是否顯示應(yīng)用程序的圖標(biāo)。

setHomeButtonEnabled(boolean eabled):  設(shè)置是否將應(yīng)用程序圖標(biāo)轉(zhuǎn)變成可點(diǎn)擊的按鈕。

5.actionbar中添加view

定義Action Item時(shí),使用android:actionViewClass屬性指定Action View的實(shí)現(xiàn)類。

定義Action Item時(shí),使用android:actionLayout屬性指定Action View對應(yīng)的視圖資源。

二、Android巧用ActionBar實(shí)現(xiàn)tab導(dǎo)航效果
利用actionbar同樣也可以輕松的實(shí)現(xiàn)tab導(dǎo)航的效果,配合使用fragment實(shí)現(xiàn)切換不同view的功能。

若想使用這個(gè)功能,需要

1)設(shè)置actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS),使actionbar使用tab導(dǎo)航功能。

2)調(diào)用actionbar的addTab()方法,添加多個(gè)tab標(biāo)簽,并為每個(gè)tab標(biāo)簽添加時(shí)間監(jiān)聽器。

MyFragment.java

package com.app.main;

import android.annotation.SuppressLint;
import android.app.Fragment;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.TextView;

@SuppressLint("NewApi")
public class MyFragment extends Fragment {

 @Override
 public View onCreateView(LayoutInflater inflater, ViewGroup container,
   Bundle savedInstanceState) {

  Context context = this.getActivity();

  TextView tv = new TextView(context);

  Bundle arc = this.getArguments();

  int tabs=arc.getInt("key");
  
  tv.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
    LayoutParams.WRAP_CONTENT));

  tv.setText("hello actionbar "+tabs);

  return tv;

 }

}

main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 tools:context=".Main" >

 <LinearLayout
  android:id="@+id/container"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical" />

</RelativeLayout>

Main.java

package com.app.main;

import android.app.ActionBar;
import android.app.ActionBar.Tab;
import android.app.Activity;
import android.app.FragmentTransaction;
import android.os.Bundle;

public class Main extends Activity implements ActionBar.TabListener {

 ActionBar actionBar = null;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);

  actionBar = this.getActionBar();

  actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

  actionBar.addTab(actionBar.newTab().setText("tab1")
    .setTabListener(this));

  actionBar.addTab(actionBar.newTab().setText("tab2")
    .setTabListener(this));

  actionBar.addTab(actionBar.newTab().setText("tab3")
    .setTabListener(this));

 }

 @Override
 public void onTabReselected(Tab tab, FragmentTransaction ft) {

 }

 @Override
 public void onTabSelected(Tab tab, FragmentTransaction ft) {

  MyFragment frag = new MyFragment();

  int index = tab.getPosition() + 1;

  Bundle bundle = new Bundle();

  bundle.putInt("key", index);

  frag.setArguments(bundle);

  FragmentTransaction action = Main.this.getFragmentManager()
    .beginTransaction();

  action.replace(R.id.container, frag);

  action.commit();

 }

 @Override
 public void onTabUnselected(Tab tab, FragmentTransaction ft) {

 }

}

實(shí)現(xiàn)效果:

以上就是本文的全部內(nèi)容,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論