public class MainActivity extends AppCompatActivity { private ViewPager pager; private RadioGroup radiogroup; private ListView listview4; private DrawerLayout draww; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); pager = findViewById(R.id.pager); radiogroup = findViewById(R.id.radioGroup); listview4 = findViewById(R.id.listview4); draww = findViewById(R.id.draw); radiogroup.check(radiogroup.getChildAt(0).getId()); final ArrayList<Fragment> list = new ArrayList<>(); Frag1 frag1 = new Frag1(); Frag2 frag2 = new Frag2(); list.add(frag1); list.add(frag2); draww.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNDEFINED); pager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) { @Override public Fragment getItem(int position) { return list.get(position); } @Override public int getCount() { return list.size(); } }); pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { switch (position){ case 0: radiogroup.check(R.id.radio1); break; case 1: radiogroup.check(R.id.radio2); break; case 2: radiogroup.check(R.id.radio3); break; } // radiogroup.check(radiogroup.getChildAt(position).getId()); } @Override public void onPageScrollStateChanged(int state) { } }); radiogroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup radioGroup, int i) { switch (i){ case R.id.radio1: pager.setCurrentItem(0); break; case R.id.radio2: pager.setCurrentItem(1); break; case R.id.radio3: pager.setCurrentItem(2); break; } } }); List<String> list_text = new ArrayList<>(); list_text.add("首页"); list_text.add("视频"); list_text.add("我的"); listview4.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list_text)); listview4.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { pager.setCurrentItem(i); draww.closeDrawers(); showDrawerLayout(); } }); draww.openDrawer(Gravity.LEFT); } private void showDrawerLayout() { if (!draww.isDrawerOpen(Gravity.LEFT)) { draww.openDrawer(Gravity.LEFT); } else { draww.closeDrawer(Gravity.LEFT); } } }
//xml
<?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/draw" tools:context=".MainActivity"> <android.support.v4.view.ViewPager android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/pager" /> <RadioGroup android:id="@+id/radioGroup" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="bottom" > <RadioButton android:id="@+id/radio1" android:layout_width="0dp" android:layout_height="50dp" android:layout_weight="1" android:button="@null" android:text="消息" android:gravity="center" /> <RadioButton android:id="@+id/radio2" android:layout_width="0dp" android:layout_height="50dp" android:layout_weight="1" android:button="@null" android:text="消息" android:gravity="center" /> <RadioButton android:id="@+id/radio3" android:layout_width="0dp" android:layout_height="50dp" android:layout_weight="1" android:button="@null" android:text="消息" android:gravity="center" /> </RadioGroup> <ListView android:layout_width="200dp" android:layout_height="match_parent" android:layout_gravity="left" android:id="@+id/listview4" android:choiceMode="singleChoice" android:background="@android:color/white" /> </android.support.v4.widget.DrawerLayout>