側滑+ViewPager
阿新 • • 發佈:2018-11-30
1.側滑加Viewpager
import android.graphics.drawable.Drawable; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.ActionBar; import android.support.v7.app.ActionBarDrawerToggle; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.RadioGroup; import android.widget.SpinnerAdapter; import java.util.ArrayList; import java.util.List; import me.maxwin.view.XListView; public class MainActivity extends FragmentActivity { private DrawerLayout drawerLayout; private ListView listView; private ViewPager pager; private RadioGroup group; private List<Fragment> list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //獲取資源ID drawerLayout = findViewById(R.id.drawer); listView = findViewById(R.id.List_text); pager = findViewById(R.id.pager); group = findViewById(R.id.group); list = new ArrayList<>(); list.add(new Fone()); list.add(new Ftwo()); list.add(new Fthree()); drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNDEFINED); //給viewpager新增介面卡 pager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) { @Override public int getCount() { return list.size(); } @Override public Fragment getItem(int i) { return list.get(i); } }); ////更換頁面切換選中按鈕 pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int i, float v, int i1) { } @Override public void onPageSelected(int i) { switch (i){ case 0: group.check(R.id.radio1); break; case 1: group.check(R.id.radio2); break; case 2: group.check(R.id.radio3); break; } } @Override public void onPageScrollStateChanged(int i) { } }); //點選按鈕進行切換頁面 group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { switch (checkedId){ case R.id.radio1: pager.setCurrentItem(0); break; case R.id.radio2: pager.setCurrentItem(1); break; case R.id.radio3: pager.setCurrentItem(2); break; } } }); //側滑 final List<String> list_text = new ArrayList<>(); list_text.add("首頁"); list_text.add("視訊"); list_text.add("我的"); listView.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,list_text)); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { //viewPager設定當前點選頁面 pager.setCurrentItem(position); //關閉側滑頁面 drawerLayout.closeDrawers(); } }); } }
2.側滑+ViewPager的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:id="@+id/drawer" android:layout_height="match_parent" tools:context=".MainActivity"> //ViewPager的頁面佈局 <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v4.view.ViewPager android:id="@+id/pager" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="8" ></android.support.v4.view.ViewPager> <RadioGroup android:id="@+id/group" android:layout_width="match_parent" android:layout_height="0dp" android:orientation="horizontal" android:layout_weight="2" > <RadioButton android:id="@+id/radio1" android:layout_width="0dp" android:layout_weight="1" android:layout_height="match_parent" android:button="@null" android:text="首頁" /> <RadioButton android:id="@+id/radio2" android:layout_weight="1" android:layout_width="0dp" android:layout_height="match_parent" android:button="@null" android:text="視訊" /> <RadioButton android:id="@+id/radio3" android:layout_weight="1" android:layout_width="0dp" android:layout_height="match_parent" android:button="@null" android:text="我的" /> </RadioGroup> </LinearLayout> //側滑的頁面佈局 <LinearLayout android:orientation="vertical" android:layout_width="266dp" android:layout_gravity="start" android:background="#fcc" android:layout_height="match_parent"> <ImageView android:id="@+id/Image" android:layout_width="100dp" android:layout_height="100dp" android:background="@drawable/ic_launcher" /> <ListView android:id="@+id/List_text" android:layout_width="150dp" android:layout_height="wrap_content" android:layout_gravity="left" android:background="#cff" ></ListView> </LinearLayout> </android.support.v4.widget.DrawerLayout>