侧滑+ViewPager

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>

猜你喜欢

转载自blog.csdn.net/weixin_43587850/article/details/84023573