TabLayout+ViewPager+Fragment简单实现横向滑动菜单

首先配置TabLayout的依赖:

implementation 'com.android.support:design:26.+'
这行代码放入模块的build.gradle 文件中。

简单的布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="vertical"
    tools:context="com.example.zym.stu_01_11.MainActivity">
    <!--不要跟tableLayout弄混
    app:tabGravity="center"    设置居中对齐
    app:tabIndicatorColor="@color/colorAccent" 下滑线的颜色
    app:tabMode="scrollable"  设置tabLayoout菜单的模式,,,scrollable可以横向滚动
    app:tabSelectedTextColor="@color/colorPrimaryDark"  选中的时候文字的颜色
    app:tabTextColor="@color/colorPrimary"       文本默认的颜色
    xmlns:app="http://schemas.android.com/apk/res-auto" 布局文件中,需要的属性
    -->
    <android.support.design.widget.TabLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:id="@+id/myTab"
        app:tabMode="scrollable"
        
        >
    </android.support.design.widget.TabLayout>
    <android.support.v4.view.ViewPager
        android:id="@+id/viewPager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#ff0">
    </android.support.v4.view.ViewPager>
</LinearLayout>
Fragment中的布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textView"/>
</LinearLayout>

MainActivity中的代码:

package com.example.zym.stu_01_11;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
    private TabLayout myTab;
    private ViewPager viewPager;
    private List<String> list;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        myTab = findViewById(R.id.myTab);
        viewPager = findViewById(R.id.viewPager);
        //创建TabLayout中的数据
        list = new ArrayList<>();
        list.add("推荐1");
        list.add("推荐2");
        list.add("推荐3");
        list.add("推荐4");
        list.add("推荐5");
        list.add("推荐6");
        list.add("推荐7");
        list.add("推荐8");
        list.add("推荐9");
        list.add("推荐10");
        //把TabLayout和ViewPager,相关联
        myTab.setupWithViewPager(viewPager);
        //给viewPager设置适配器
        viewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
            //跟TabLayout相关联的时候,这个方法,返回的是集合中的内容
            @Override
            public CharSequence getPageTitle(int position) {
                return list.get(position);
            }
            @Override
            public int getCount() {
                return list.size();
            }
            @Override
            public Fragment getItem(int position) {
                //实例化Fragment并用Bundle往Fragment传值。
                Fragment_01 fragment_01 = new Fragment_01();
                Bundle bundle = new Bundle();
                bundle.putString("data",list.get(position));
                fragment_01.setArguments(bundle);
                return fragment_01;
            }
        });
    }
}
Fragment中的代码:

package com.example.zym.stu_01_11;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

/**
 * Created by Administrator on 2018/1/11 0011.
 */

public class Fragment_01 extends Fragment {
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.layout_fragment, container, false);
        TextView textView = view.findViewById(R.id.textView);
        Bundle bundle = getArguments();
        textView.setText(bundle.getString("data"));
        return view;
    }
}

以上,就简单的实现了,一个菜单导航。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值