AndroID 中Actionbar+fragment实现页面导航的实例
为保证androID2.0以上均能运行,使用support.v7库下的actionbar及fragment
继承自AppCompatActivity(ActionBaractivity已过时)使用getSupportActionbar()得到Actionbar,
Actionbar.Tab,这里Tab必须设置监听,在监听中实现Fragment的切换。
这里重点提一下,theme主题一定要适配,因为我使用的是AppCompatActivity所以,
androID:theme="@style/theme.AppCompat.light"
如果不用AppCompatActivity一定要注意使用相应的主题适配,否则会getActionbar/getSupportActionbar的时候拿不到东西,空指针报错
<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" androID:paddingleft="@dimen/activity_horizontal_margin" androID:paddingRight="@dimen/activity_horizontal_margin" androID:paddingtop="@dimen/activity_vertical_margin" androID:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <FrameLayout androID:ID="@+ID/context" androID:layout_wIDth="match_parent" androID:layout_height="match_parent"/> </relativeLayout>
package com.example.yasin.actionbarusing; import androID.app.Activity; import androID.os.Bundle; import androID.support.v4.app.Fragment; import androID.support.v4.app.FragmentTransaction; import androID.support.v7.app.Actionbar; import androID.support.v7.app.ActionBaractivity; import androID.support.v7.app.AppCompatActivity; import androID.util.Log; import androID.vIEw.VIEw; public class MainActivity extends AppCompatActivity { Actionbar actionbar; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_main); actionbar = getSupportActionbar(); actionbar.setNavigationMode(Actionbar.NAVIGATION_MODE_TABS); Actionbar.Tab tab1 = actionbar.newTab().setText("Tab1"); tab1.setTabListener(new MyTabListener(new Fragment1())); Actionbar.Tab tab2 = actionbar.newTab().setText("Tab2"); tab2.setTabListener(new MyTabListener(new Fragment2())); actionbar.addTab(tab1); actionbar.addTab(tab2); } class MyTabListener implements Actionbar.TabListener{ private Fragment fragment; public MyTabListener (Fragment fragment){ this.fragment=fragment; } @OverrIDe public voID onTabSelected(Actionbar.Tab tab,FragmentTransaction ft) { ft.replace(R.ID.context,fragment); } @OverrIDe public voID onTabUnselected(Actionbar.Tab tab,FragmentTransaction ft) { } @OverrIDe public voID onTabReselected(Actionbar.Tab tab,FragmentTransaction ft) { //ft.remove(fragment); } } }
<?xml version="1.0" enCoding="utf-8"?> <linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:layout_wIDth="match_parent" androID:layout_height="match_parent"> <TextVIEw androID:ID="@+ID/tv1" androID:text="fragment1" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" /> </linearLayout>
package com.example.yasin.actionbarusing; import androID.os.Bundle; import androID.support.annotation.Nullable; import androID.support.v4.app.Fragment; import androID.vIEw.LayoutInflater; import androID.vIEw.VIEw; import androID.vIEw.VIEwGroup; /** * Created by Yasin on 2016/1/3. */ public class Fragment1 extends Fragment{ @Nullable @OverrIDe public VIEw onCreateVIEw(LayoutInflater inflater,VIEwGroup container,Bundle savedInstanceState) { VIEw vIEw = inflater.inflate(R.layout.fragment1,container,false); return vIEw; } }
<?xml version="1.0" enCoding="utf-8"?> <manifest xmlns:androID="http://schemas.androID.com/apk/res/androID" package="com.example.yasin.actionbarusing" > <application androID:allowBackup="true" androID:icon="@mipmap/ic_launcher" androID:label="@string/app_name" androID:theme="@style/theme.AppCompat.light" > <activity androID:name=".MainActivity" androID:label="@string/app_name" > <intent-filter> <action androID:name="androID.intent.action.MAIN" /> <category androID:name="androID.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
效果图:
如有疑问请留言或者到本站社区交流讨论,大家共同进步,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
总结以上是内存溢出为你收集整理的Android 中ActionBar+fragment实现页面导航的实例全部内容,希望文章能够帮你解决Android 中ActionBar+fragment实现页面导航的实例所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)