TabLayout+TabItem+ViewPager+Fragment实现早期微信屏幕滑动效果

来源:互联网 发布:升腾资讯java笔试题 编辑:程序博客网 时间:2024/05/16 07:39

效果图

这里写图片描述

layout_main.xml

主要用了TabLayout TabItem  Viewpager其中  Tablayout 就是 上面的导航布局, TabItem 为其中的ItemViewPager用来承载 FragmentNestedScrollView  可滑动的View 相当于ScrollView 
<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:id="@+id/activity_main"    android:layout_width="match_parent"    android:orientation="vertical"    android:layout_height="match_parent"    tools:context="com.example.msh.androidl.MainActivity">    <android.support.design.widget.TabLayout        android:id="@+id/toolbar_tab"        android:layout_width="match_parent"        android:layout_height="?attr/actionBarSize"        android:background="#ffffff"        android:fillViewport="false"        app:tabIndicatorColor="#0835f8"        app:tabIndicatorHeight="2.0dp"        app:tabSelectedTextColor="#0835f8"        app:tabTextColor="#ced0d3">        <android.support.design.widget.TabItem            android:layout_width="match_parent"            android:layout_height="match_parent"            android:text="马世豪" />        <android.support.design.widget.TabItem            android:layout_width="match_parent"            android:layout_height="match_parent"            android:text="马世豪" />        <android.support.design.widget.TabItem            android:layout_width="match_parent"            android:layout_height="match_parent"            android:text="马世豪" />        <android.support.design.widget.TabItem            android:layout_width="match_parent"            android:layout_height="match_parent"            android:text="马世豪" />        <android.support.design.widget.TabItem            android:layout_width="match_parent"            android:layout_height="match_parent"            android:text="马世豪" />    </android.support.design.widget.TabLayout>    <android.support.v4.widget.NestedScrollView        android:id="@+id/nsv"        android:layout_width="match_parent"        android:layout_height="match_parent"        app:layout_behavior="@string/appbar_scrolling_view_behavior"        android:fillViewport="true"        android:scrollbars="none">        <android.support.v4.view.ViewPager            android:id="@+id/main_vp_container"            android:layout_width="match_parent"            android:layout_height="match_parent"/>    </android.support.v4.widget.NestedScrollView></LinearLayout>

MainActivity.java

public class MainActivity extends AppCompatActivity {    private TabLayout toolbar_tab;    private ViewPager main_vp_container;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        toolbar_tab = (TabLayout) findViewById(R.id.toolbar_tab);        main_vp_container = (ViewPager) findViewById(R.id.main_vp_container);        ViewPagerAdapter vpAdapter = new ViewPagerAdapter(getSupportFragmentManager(), this);;        main_vp_container.setAdapter(vpAdapter);//        tablayout和viewpager建立相互的联系        main_vp_container.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(toolbar_tab));        toolbar_tab.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(main_vp_container));//        为什么不用下面这个方法呢?//        toolbar_tab.setupWithViewPager(main_vp_container);    }}

为什么不用 setupWithViewPager();
请移步— > http://www.jianshu.com/p/896b149aaa43

源码下载

1 0
原创粉丝点击