1.文件准备:
①MainActivity.java activity_layout.xml;
②3-4个Fragmentxx.java fragmentxx.xml;
③一个颜色资源文件,用于按钮切换的展示。
④style文件,同一管理按钮的样式。
2.MainActivity
public class MainActivity extends AppCompatActivity { private TextView marketBar; private TextView hatBar; private TextView messageBar; private TextView centerBar; Fragment1 giftFragment; Fragment2 hatFragment; Fragment3 messageFragment; Fragment4 centerFragment; FragmentManager fragmentManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); marketBar = (TextView) findViewById(R.id.bar_market); hatBar = (TextView) findViewById(R.id.bar_hat); messageBar = (TextView) findViewById(R.id.bar_message); centerBar = (TextView) findViewById(R.id.bar_center); marketBar.setClickable(true); hatBar.setClickable(true); messageBar.setClickable(true); centerBar.setClickable(true); setAllNotSelected(); marketBar.setSelected(true); giftFragment = new Fragment1(); hatFragment = new Fragment2(); messageFragment = new Fragment3(); centerFragment = new Fragment4(); fragmentManager = getFragmentManager(); fragmentManager.beginTransaction().replace(R.id.main_fragment, giftFragment).commit(); } private void setAllNotSelected() { marketBar.setSelected(false); hatBar.setSelected(false); messageBar.setSelected(false); centerBar.setSelected(false); } public void tabSelect(View v) { setAllNotSelected(); switch (v.getId()) { case R.id.bar_market: marketBar.setSelected(true); fragmentManager.beginTransaction().replace(R.id.main_fragment, giftFragment).commit(); break; case R.id.bar_hat: hatBar.setSelected(true); fragmentManager.beginTransaction().replace(R.id.main_fragment, hatFragment).commit(); break; case R.id.bar_message: messageBar.setSelected(true); fragmentManager.beginTransaction().replace(R.id.main_fragment, messageFragment).commit(); break; case R.id.bar_center: centerBar.setSelected(true); fragmentManager.beginTransaction().replace(R.id.main_fragment, centerFragment).commit(); break; default: break; } } }
3.activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#eeeeee"> <LinearLayout android:id="@+id/menu_bar" android:layout_width="match_parent" android:layout_height="50dp" android:layout_alignParentBottom="true" android:background="#ddd" android:orientation="horizontal"> <TextView android:id="@+id/bar_market" style="@style/MainBar" android:onClick="tabSelect" android:text="选项1" /> <TextView android:id="@+id/bar_hat" style="@style/MainBar" android:onClick="tabSelect" android:text="选项2" /> <TextView android:id="@+id/bar_message" style="@style/MainBar" android:onClick="tabSelect" android:text="选项3" /> <TextView android:id="@+id/bar_center" style="@style/MainBar" android:onClick="tabSelect" android:text="选项4" /> </LinearLayout> <FrameLayout android:id="@+id/main_fragment" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_above="@id/menu_bar"></FrameLayout> <TextView android:layout_width="match_parent" android:layout_height="1dp" android:background="#ddd" /> </RelativeLayout>
4.其中一个Fragment举例
public class Fragment1 extends Fragment{ @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v=inflater.inflate(R.layout.fragment1,container,false); return v; } }
5.style文件
<resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style> <style name="MainBar" > <item name="android:layout_weight">1</item> <item name="android:layout_width">0dp</item> <item name="android:layout_height">match_parent</item> <item name="android:textSize">20dp</item> <item name="android:textColor">@color/tab_color_selector</item> <item name="android:gravity">center</item> </style> </resources>6.color文件 tab_color_selector.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:color="#118bfc" android:state_selected="true"/> <item android:color="#333" /> </selector>