Android 中ActionBar+fragment实现页面导航的实例

Android 中ActionBar+fragment实现页面导航的实例,第1张

概述Android中ActionBar+fragment实现页面导航实例为保证android2.0以上均能运行,使用support.v7库下的actionbar及fragment

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实现页面导航的实例所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1144483.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存