您的位置:首页 > 移动开发 > 微信开发

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

2016-10-27 18:01 645 查看

效果图



layout_main.xml

主要用了TabLayout TabItem  Viewpager
其中  Tablayout 就是 上面的导航布局, TabItem 为其中的Item
ViewPager用来承载 Fragment
NestedScrollView  可滑动的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

源码下载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android viewpager
相关文章推荐