首页 > 代码库 > Android下实现tab页个人比较推崇的方法
Android下实现tab页个人比较推崇的方法
使用fragment实现tab页的效果:
三个页面是单独的三个Fragment
主Activity的实现:
package com.hsx.tab;import android.os.Bundle;import android.support.v4.app.FragmentActivity;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentTransaction;import android.view.View;import android.widget.ImageButton;public class MainActivity extends FragmentActivity { protected static final String TAG = "MainActivity"; private View currentButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initComponents(); } private void initComponents() { ImageButton btn_one = (ImageButton) findViewById(R.id.buttom_one); ImageButton btn_two = (ImageButton) findViewById(R.id.buttom_two); ImageButton btn_three = (ImageButton) findViewById(R.id.buttom_three); btn_one.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { FragmentManager fm = getSupportFragmentManager(); FragmentTransaction ft = fm.beginTransaction(); Fragment_One fragment_one = new Fragment_One(); ft.replace(R.id.fl_content, fragment_one, MainActivity.TAG); ft.commit(); setButton(v); } }); btn_two.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { FragmentManager fm = getSupportFragmentManager(); FragmentTransaction ft = fm.beginTransaction(); Fragment_Two fragment_two = new Fragment_Two(); ft.replace(R.id.fl_content, fragment_two, MainActivity.TAG); ft.commit(); setButton(v); } }); btn_three.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { FragmentManager fm = getSupportFragmentManager(); FragmentTransaction ft = fm.beginTransaction(); Fragment_Three fragment_three = new Fragment_Three(); ft.replace(R.id.fl_content, fragment_three, MainActivity.TAG); ft.commit(); setButton(v); } }); /** * 默认第一个按钮点击 */ btn_one.performClick(); } /** * 设置按钮的背景图片 * * @param v */ private void setButton(View v) { if (currentButton != null && currentButton.getId() != v.getId()) { currentButton.setEnabled(true); } v.setEnabled(false); currentButton = v; }}
xml的代码
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:id="@+id/buttom_bar_group" android:layout_width="match_parent" android:layout_height="60dp" android:layout_alignParentBottom="true" android:gravity="center_vertical" android:orientation="horizontal"> <RelativeLayout style="@style/ButtomBar"> <ImageButton android:id="@+id/buttom_one" style="@style/ButtomBarImgBtn" android:background="@drawable/bar_news" android:contentDescription="@string/app_name" /> </RelativeLayout> <RelativeLayout style="@style/ButtomBar"> <ImageButton android:id="@+id/buttom_two" style="@style/ButtomBarImgBtn" android:background="@drawable/bar_constact" android:contentDescription="@string/app_name" /> </RelativeLayout> <RelativeLayout style="@style/ButtomBar"> <ImageButton android:id="@+id/buttom_three" style="@style/ButtomBarImgBtn" android:background="@drawable/bar_deynaimic" android:contentDescription="@string/app_name" /> </RelativeLayout> </LinearLayout> <View android:id="@+id/line" android:layout_width="match_parent" android:layout_height="0.5dp" android:layout_above="@id/buttom_bar_group" android:background="@color/devide_line" /> <FrameLayout android:id="@+id/fl_content" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_above="@id/line" /></RelativeLayout>
demo下载地址:http://files.cnblogs.com/hsx514/Test_Fragment.zip
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。