ActionBar详解(五)--->利用ActionBar结合Fragment实现Tab导航
发布日期:2021-06-30 11:13:51 浏览次数:2 分类:技术文章

本文共 3098 字,大约阅读时间需要 10 分钟。

MainActivity如下:

package cc.testsimpleactionbar4;import android.os.Bundle;import android.app.ActionBar;import android.app.Activity;import android.app.ActionBar.Tab;import android.app.ActionBar.TabListener;import android.app.FragmentTransaction;/** * Demo描述: * 利用ActionBar结合Fragment实现Tab导航. * 当选中不同的Tab时利用Fragment显示不同的内容 *  * 参考资料: * 1 Android疯狂讲义(第二版) *   Thank you very much * */public class MainActivity extends Activity {     private ActionBar mActionBar;     private final static String SELECTED_TAB_INDEX="selected_tab";	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.main);		initActionBar();	}		private void initActionBar(){		mActionBar=getActionBar();		//设置导航方式为Tab		mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);				Tab tab1=mActionBar.newTab();		tab1.setText("第一页");		tab1.setTabListener(new TabListenerImpl());		mActionBar.addTab(tab1);				Tab tab2=mActionBar.newTab();		tab2.setText("第二页");		tab2.setTabListener(new TabListenerImpl());		mActionBar.addTab(tab2);				Tab tab3=mActionBar.newTab();		tab3.setText("第三页");		tab3.setTabListener(new TabListenerImpl());		mActionBar.addTab(tab3);	}		private class TabListenerImpl implements TabListener{		@Override		public void onTabReselected(Tab arg0, FragmentTransaction arg1) {					}		@Override		public void onTabSelected(Tab tab, FragmentTransaction transaction) {			System.out.println(" onTabSelected ");			TestFragment testFragment=new TestFragment();			Bundle bundle=new Bundle();			bundle.putString(TestFragment.KEY, "这是第"+(tab.getPosition()+1)+"个Tab");			testFragment.setArguments(bundle);			FragmentTransaction fragmentTransaction=getFragmentManager().beginTransaction();			fragmentTransaction.replace(R.id.relativeLayoutContainer, testFragment);			fragmentTransaction.commit();		}		@Override		public void onTabUnselected(Tab arg0, FragmentTransaction arg1) {					}			}	//以下处理横竖屏的切换		//将当前选中的Tab页的索引保存到Bundle中	@Override	protected void onSaveInstanceState(Bundle bundle) {		super.onSaveInstanceState(bundle);		bundle.putInt(SELECTED_TAB_INDEX, mActionBar.getSelectedNavigationIndex());	}		//获取已经保存的被选中Tab页的索引,且设置ActionBar.	//setSelectedNavigationItem()方法会调用onTabSelected()	@Override	protected void onRestoreInstanceState(Bundle bundle) {		super.onRestoreInstanceState(bundle);		mActionBar.setSelectedNavigationItem(bundle.getInt(SELECTED_TAB_INDEX));	}}

 

TestFragment如下:

package cc.testsimpleactionbar4;import android.app.Fragment;import android.os.Bundle;import android.view.Gravity;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.TextView;public class TestFragment extends Fragment {	public static final String KEY="key";	@Override	public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {		TextView textView=new TextView(getActivity());		textView.setGravity(Gravity.CENTER);		Bundle bundle=this.getArguments();		String content=bundle.getString(KEY);		textView.setText(content);		textView.setTextSize(30);		return textView;	}}

main.xml如下:

 

转载地址:https://it9527.blog.csdn.net/article/details/12526675 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:ActionBar详解(四)--->在ActionBar上添加UI组件
下一篇:ActionBar详解(六)--->利用ActionBar结合Fragment实现下拉式导航

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年04月22日 17时36分02秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

【工具使用】CSDN编辑器markdown字体、颜色与字号的设置 2019-04-30
【NLP学习笔记】词共现矩阵 2019-04-30
【NLP学习笔记】NLP基础知识框架图 2019-04-30
【深度学习笔记】卷积的输入输出的通道、维度或尺寸变化过程 2019-04-30
【NLP学习笔记】训练集、验证集和测试集的概念及划分 2019-04-30
【NLP学习笔记】conda换源 2019-04-30
【深度学习笔记】常见的图像增强方法:scaling、rotating、flipping、random cropping 2019-04-30
【深度学习笔记】标准卷积 2019-04-30
【深度学习笔记】组卷积 2019-04-30
【深度学习笔记】循环神经网络和递归神经网络区别 2019-04-30
【学习笔记】英文科技论文常见英语句式积累 2019-04-30
【深度学习笔记】PixelShuffle 2019-04-30
【python3学习笔记】斜杠和双斜杠运算符的区别 2019-04-30
【深度学习笔记】torch.nn.Sequential(* args) 与 torch.nn.Module 2019-04-30
【深度学习笔记】用torch.nn.Sequential()搭建神经网络模型 2019-04-30
【深度学习笔记】用torch.nn.ModuleList搭建神经网络 2019-04-30
【解决错误】AttributeError: module ‘scipy.misc‘ has no attribute ‘imread‘ 2019-04-30
【解决错误】复现RCAN的时候遇到了ImportError: cannot import name ‘_update_worker_pids’ from ‘torch._C’ 2019-04-30
【解决错误】ModuleNotFoundError: No module named ‘skimage‘ 2019-04-30
【深度学习笔记】pytorch的点乘(dot product) 2019-04-30