Fragment works with RadioGroup to implement click switching layout. fragmentradiogroup
Here we use
compile 'com.jakewharton:butterknife:7.0.1'compile 'org.greenrobot:eventbus:3.0.0'
MainActivity Layout
<? Xml version = "1.0" encoding = "UTF-8"?> <LinearLayout 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: orientation = "vertical" tools: context = "liu. radiobuttonandfragment. mainActivity "> <FrameLayout android: id =" @ + id/content "android: layout_width =" match_parent "android: layout_height =" match_parent "android: layout_weight = "1"> </FrameLayout> <LinearLayout android: layout_width = "match_parent" android: layout_height = "wrap_content" android: background = "@ mipmap/nav_footer_white" android: gravity = "center" android: orientation = "horizontal"> <RadioGroup android: id = "@ + id/rgTools" android: layout_width = "match_parent" android: layout_height = "match_parent" android: gravity = "center" android: orientation = "horizontal"> <RadioButton android: id = "@ + id/rbHome" android: layout_width = "0dp" android: layout_height = "match_parent" android: layout_gravity = "right" android: layout_weight = "1" android: button = "@ null" android: checked = "true" android: drawableTop = "@ drawable/selector_main_btn_home" android: gravity = "center" android: paddingLeft = "0dp" android: text = "Homepage"/> <RadioButton android: id = "@ + id/rbShop" android: layout_width = "0dp" android: layout_height = "match_parent" android: layout_weight = "1" android: button = "@ null" android: checked = "false" android: drawableTop = "@ drawable/selector_main_btn_shopcart" android: gravity = "center" android: text = "Shopping Cart"/> <RadioButton android: checked = "false" android: id = "@ + id/rbMessage" android: layout_width = "0dp" android: layout_height = "match_parent" android: layout_weight = "1" android: button = "@ null" android: drawableTop = "@ drawable/selector_main_btn_message" android: gravity = "center" android: text = "message"/> <RadioButton android: checked = "false" android: id = "@ + id/rbMine" android: layout_width = "0dp" android: layout_height = "match_parent" android: layout_gravity = "center" android: layout_weight = "1" android: button = "@ null" android: drawableTop = "@ drawable/selector_main_btn_mine" android: gravity = "center" android: text = "my"/> </RadioGroup> </LinearLayout>
Main Code
Private void initFragment () {// home page HomeFragment homeFragment = new HomeFragment (); // shopping cart details = new ShopcartFragment (); // message MessageFragment messageFragment = new MessageFragment (); // MineFragment mineFragment = new MineFragment (); // Add to the array mFragments = new Fragment [] {homeFragment, shopcartFragment, messageFragment, mineFragment }; // enable the transaction FragmentTransaction ft = getSupport FragmentManager (). beginTransaction (); // Add the homepage ft. add (R. id. content, homeFragment ). commit (); // The default value is 0th setIndexSelected (0);} private void setIndexSelected (int index) {if (mIndex = index) {return ;} fragmentManager fragmentManager = getSupportFragmentManager (); FragmentTransaction ft = fragmentManager. beginTransaction (); // hide ft. hide (mFragments [mIndex]); // determines whether to add if (! MFragments [index]. isAdded () {ft. add (R. id. content, mFragments [index]). show (mFragments [index]);} else {ft. show (mFragments [index]);} ft. commit (); // assign mIndex = index again;} @ OnClick ({R. id. rbHome, R. id. rbShop, R. id. rbMessage, R. id. rbMine}) public void onClick (View view) {switch (view. getId () {case R. id. rbHome: setIndexSelected (0); break; case R. id. rbShop: setIndexSelected (1); break; case R. id. rbMessage: setIndexSelected (2); break; case R. id. rbMine: setIndexSelected (3); break ;}}
Source code:
Https://github.com/ln0491/RadioButtonAndFragment