ActionBar与Fragment
来源:互联网 发布:qq飞车青峰剃刀数据 编辑:程序博客网 时间:2024/06/07 02:28
最近一个正在学Android的朋友问到了一个ActionBar与Fragment的问题,于是写了一个Demo来简单的说明Fragment与ActionBar的结合。
要实现诸如WEB开发当中的Tab页切换的效果,可以使用ActionBar来结合Fragment使用。实现思路是在Android页面的头领加上一个ActionBar,其中包含多个TAB元素,每一个Tab元素对应一个Fragemnt,为Tab元素加上TabListener监听事件。这样就可以实现WEB当中的TAB切换的效果了。下面是我写的一个Demo:
首先新建Fragment并对应的新建连个xml布局文件
first.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/first" android:text="@string/first" android:layout_width="match_parent" android:layout_height="wrap_content" android:textColor="#ff0000" android:textSize="25sp" /> </LinearLayout>
second.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><TextView android:id="@+id/second"android:text="@string/second"android:layout_width="match_parent"android:layout_height="wrap_content"android:textColor="#ff0000"android:textSize="25sp"/></LinearLayout>
对应的两个Fragment
FirstFragment
public class FirstFragment extends Fragment {@Overridepublic void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubLog.e(Constant.MESS_LOG, "FirstFragment OnCreate");super.onCreate(savedInstanceState);}@Overridepublic void onStop() {// TODO Auto-generated method stubLog.e(Constant.MESS_LOG, "FirstFragment onStop!");super.onStop();}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {// TODO Auto-generated method stubLog.e(Constant.MESS_LOG, "FirstFratment OnCreateView");return inflater.inflate(R.layout.first, container,false);//super.onCreateView(inflater, container, savedInstanceState);}}
SecondFragment
public class SecondFragment extends Fragment{private Button secondButton;@Overridepublic void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);Log.e(Constant.MESS_LOG, "sECONDfRAGMENT Oncreate");}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {// TODO Auto-generated method stubLog.e(Constant.MESS_LOG, "SecondFragment OnCreateView");return inflater.inflate(R.layout.second, container, false);//super.onCreateView(inflater, container, savedInstanceState);}@Overridepublic void onStop() {// TODO Auto-generated method stubLog.e(Constant.MESS_LOG, "Secondfragment Onstop!");super.onStop();}}
最后在主页面启动时为其添加一个ActionBar,并将Tab的监听事件加上
public class MainActivity extends Activity implements TabListener{private Fragment fragment;public MainActivity(){}public MainActivity(Fragment fragment){this.fragment = fragment;}@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);ActionBar actionBar = getActionBar();actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);actionBar.setDisplayShowTitleEnabled(false);Tab firstTab = actionBar.newTab().setText("First");Tab secondTab = actionBar.newTab().setText("second");firstTab.setTabListener(new MainActivity((new FirstFragment())));secondTab.setTabListener(new MainActivity(new SecondFragment()));actionBar.addTab(secondTab);actionBar.addTab(firstTab);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}@Overridepublic void onTabReselected(Tab tab, FragmentTransaction ft) {// TODO Auto-generated method stub}@Overridepublic void onTabSelected(Tab tab, FragmentTransaction ft) {// TODO Auto-generated method stubft.add(R.id.layout, fragment,null);}@Overridepublic void onTabUnselected(Tab tab, FragmentTransaction ft) {// TODO Auto-generated method stubft.remove(fragment);}}
最后注意:
MainActivity 实现了TabListener监听事件所以添加了带参数的构造方法,但是不要往了重载一个无参数的构造方法,否则会报错。
有点困了,今天先写到这里,更详细的内容以后再补上。
- ActionBar与Fragment
- ActionBar的TabListener与Fragment
- ActionBar 与Fragment的联合使用
- Fragment与ActionBar的结合使用
- Android actionBar与Fragment结合使用Demo
- Android actionBar与Fragment结合使用Demo2
- 菜单栏ActionBar与Fragment完美使用
- ActionBar-Fragment
- ActionBar+Fragment
- 关于fragment、ActionBar与ViewPager的一些总结
- android中ActionBar +Fragment
- ActionBar tab + Fragment
- ActionBar + Fragment + ViewPager
- ViewPager,ActionBar,Fragment--通讯录
- ActionBar和fragment
- ActionBarActivity ActionBar Fragment
- SlidingMenu+ActionBar+Fragment实现
- Fragment 和 actionbar
- JQuery mouse..事件+元素显示隐藏 切换 +淡入淡出+滑动效果。(可以做一个ul li下拉框滑动收起效果:slideUp)
- unity参数重载调用
- exit _exit _Exit
- JSON.simple example – Read and write JSON
- Linux远程联机服务器SSH VNC XDMCP RDP
- ActionBar与Fragment
- webservice编写和使用
- SUSE10安装memcached
- iOS(1): iOS7 隐藏Status Bar
- java帮助文档 JDK帮助文档(chm版) (所有版本提供下载)
- Java中Array与ArrayList的主要区别
- Java JSON Tutorial
- 平庸的程序员-个人履历
- HDU2145 zz's Mysterious Present 解题报告 ——最短路dijkstra算法