展会信息港展会大全

Android ActionBar Tabs学习笔记 android开发学习
来源:互联网   发布日期:2015-09-29 10:41:01   浏览:2412次  

导读:ActionBar Tab主要用于Fragment之间的切换,其必须要设置ActionBar.TabListener,详细代码如下ActionBarActivity.java:import android.app.ActionBar;import android.app.Activity;import android.app.Frag......

ActionBar Tab主要用于Fragment之间的切换,其必须要设置ActionBar.TabListener,详细代码如下ActionBarActivity.java:

import android.app.ActionBar;

import android.app.Activity;

import android.app.FragmentTransaction;

import android.app.ActionBar.Tab;

import android.os.Bundle;

import android.os.CountDownTimer;

import android.view.MotionEvent;

import android.view.Window;

public class ActionBarActivity extends Activity {

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//使ActionBar变得透明

requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY);

setContentView(R.layout.main);

final ActionBar actionBar = getActionBar();

actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

// remove the activity title to make space for tabs

actionBar.setDisplayShowTitleEnabled(false);

AFragment aFragment = new AFragment();

actionBar.addTab(actionBar.newTab().setText("Tab-A")

.setTabListener(new ListenerA(aFragment)));

BFragment bFragment = new BFragment();

actionBar.addTab(actionBar.newTab().setText("Tab-B")

.setTabListener(new ListenerB(bFragment)));

}

//点击显示or隐藏ActionBar

public boolean onTouchEvent(MotionEvent event){

ActionBar bar = getActionBar();

switch(event.getAction()){

case MotionEvent.ACTION_UP:

if(bar.isShowing()) bar.hide();

else bar.show();

break;

default:

break;

}

return true;

}

private class ListenerA implements ActionBar.TabListener {

private AFragment mFragment;

// Called to create an instance of the listener when adding a new tab

public ListenerA(AFragment fragment) {

mFragment = fragment;

}

public void onTabSelected(Tab tab, FragmentTransaction ft) {

ft.add(R.id.fragment, mFragment, null);

}

public void onTabUnselected(Tab tab, FragmentTransaction ft) {

ft.remove(mFragment);

}

public void onTabReselected(Tab tab, FragmentTransaction ft) {

// do nothing }

}

}

private class ListenerB implements ActionBar.TabListener {

private BFragment mFragment;

// Called to create an instance of the listener when adding a new tab

public ListenerB(BFragment fragment) {

mFragment = fragment;

}

public void onTabSelected(Tab tab, FragmentTransaction ft) {

ft.add(R.id.fragment, mFragment, null);

}

public void onTabUnselected(Tab tab, FragmentTransaction ft) {

ft.remove(mFragment);

}

public void onTabReselected(Tab tab, FragmentTransaction ft) {

// do nothing }

}

}

}

其中涉及到两个Fragment,在前面Fragment的笔记中讲过,这里就不再赘述。类AFragment实现如下,BFragment实现与这类似:

public class AFragment extends Fragment {

public View onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

return inflater.inflate(R.layout.alayout, container, false);

}

}

赞助本站

人工智能实验室

相关热词: ActionBar Tabs

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港