fragment点击切换页面(变色)
例:
在res下面新建drawable文件夹》新建radio_select.xml文件》
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="true" android:drawable="@color/red"/> <item android:state_checked="false" android:drawable="@color/white"/> </selector>
colors.xml下面的:
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="red">#f00</color> <color name="white">#ffffff</color> </resources>
MainActivity 主页面:
public class MainActivity extends AppCompatActivity { private ViewPager view_pager; private RadioGroup radio_group; private List list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //FragmentActivity 找控件 view_pager = (ViewPager) findViewById(R.id.view_pager); radio_group = (RadioGroup) findViewById(R.id.radio_group); // 通过viewPager展示Fragment list = new ArrayList<Fragment>(); list.add(new Main1Fragment()); list.add(new Main2Fragment()); // 适配到ViewPager上 view_pager.setAdapter(new MyPagerAdapter(getSupportFragmentManager(),list)); // 滑动页面,,,,radiobutton切换 view_pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageSelected(int arg0) { radio_group.check(radio_group.getChildAt(arg0).getId()); } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageScrollStateChanged(int arg0) { } }); // 切换radiobutton,,,页面切换 radio_group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { switch (checkedId) { case R.id.rb_01: view_pager.setCurrentItem(0, false); break; case R.id.rb_02: view_pager.setCurrentItem(1, false); break; default: break; } } }); } }activity_main
<?xml version="1.0" encoding="utf-8"?> <LinearLayout android:orientation="vertical" 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" tools:context=".MainActivity"> <android.support.v4.view.ViewPager android:id="@+id/view_pager" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="9" /> <RadioGroup android:layout_width="match_parent" android:layout_height="0dp" android:id="@+id/radio_group" android:layout_weight="1" android:orientation="horizontal" > <RadioButton android:id="@+id/rb_01" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:background="@drawable/radio_select" android:button="@null" android:checked="true" android:gravity="center" android:text="首页" android:textSize="18sp" /> <RadioButton android:id="@+id/rb_02" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:background="@drawable/radio_select" android:button="@null" android:gravity="center" android:text="我的" android:textSize="18sp" /> </RadioGroup> </LinearLayout>
MyPagerAdapter
public class MyPagerAdapter extends FragmentPagerAdapter { private List<Fragment> list; public MyPagerAdapter(FragmentManager fm, List<Fragment> list) { super(fm); this.list = list; } @Override public Fragment getItem(int arg0) { // TODO Auto-generated method stub return list.get(arg0); } @Override public int getCount() { // TODO Auto-generated method stub return list.size(); } }
Main1Fragment
public class Main1Fragment extends Fragment { @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = View.inflate(getActivity(), R.layout.fragment_main1, null); return view; } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); } }fragment_main1
<?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"> <TextView android:text="首页页面" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </RelativeLayout>