以前做的项目,导航栏基本上是在顶部或者是在底部,但是最近开发的一款应用,刚开始拿到设计图也是很懵逼的,导航栏居然是在中间,什么他妈的!设计图如下:
导航栏在中间就会涉及到两个:viewpage之间的联动,:viewpage的高度适应等问题,现在来纪录一下是怎么解决问题的吗?希望给有同样需求的提供一定的帮助。
系统自动:viewpage不能设置wrap_content;
自定义:viewpage,注意高度的设置否则底部空白的问题
网上也会有很多相关的教程,我选择了其中一个。具体代码如下:
公开课WrapContentHeightViewPager延伸:viewpage { 私人int电流; 私人int高度=0; 私人布尔scrollble=true; 公共WrapContentHeightViewPager(上下文语境){ 超级(上下文); } 公共WrapContentHeightViewPager(上下文语境,AttributeSet attrs) { 超级(上下文,attrs); } @Override 保护空白> 公共类BaseLinkPageChangeListener实现:viewpage。OnPageChangeListener { 私人:viewpage linkViewPager; 私人:viewpage selfViewPager; 私人int pos; 公共BaseLinkPageChangeListener: viewpage selfViewPager,: viewpage linkViewPager) { 这一点。linkViewPager=linkViewPager; 这一点。selfViewPager=selfViewPager; } @Override 公共空间> & lt; & # 63; xml version=" 1.0 " encoding=" utf - 8 " & # 63;比; & lt; android.support.v4.widget。NestedScrollView xmlns: android=" http://schemas.android.com/apk/res/android " xmlns:应用=" http://schemas.android.com/apk/res-auto " android: layout_width=" match_parent " android: layout_height=癿atch_parent”比; LinearLayout & lt; android: layout_width=" match_parent " android: layout_height=" match_parent " 面向android:=按怪薄北? & lt; cn.yznu.gdmapoperate.ui.widget.WrapContentHeightViewPager android: id=癅 + id/body_vp” android: layout_width=" match_parent " android: layout_height=" wrap_content "/比; & lt; com.flyco.tablayout.SlidingTabLayout android: id=癅 + id/tabLayout” android: layout_width=" match_parent " android: layout_height=" 40 dp " android: layout_centerHorizontal=" true " android: layout_gravity=" center_horizontal " android:背景=" @color/colorPrimaryDark” android: paddingBottom=" 10 dp” 应用:tl_indicator_color=" # 000 " 应用:tl_indicator_margin_top=" 10 dp” 应用:tl_indicator_width_equal_title=" true " 应用:tl_tab_space_equal=" true " 应用:tl_textSelectColor=" # f00” 应用:tl_textUnselectColor=" # fff” 应用:tl_textsize=" 17 sp”/比; & lt; cn.yznu.gdmapoperate.ui.widget.WrapContentHeightViewPager android: id=癅 + id/header_vp” android: layout_width=" match_parent " android: layout_height=" wrap_content "/比; & lt;/LinearLayout> & lt;/android.support.v4.widget.NestedScrollView> >之前活动中的配置
bodyVp。addOnPageChangeListener(新BaseLinkPageChangeListener (bodyVp headerVp) { @Override 公共空间alt=" Android两个:viewpage的联动效果的实现“>
一顿乱写,个人观点仅供参考,如有不对的地方,请直接直出
源码传送门
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
Android两个:viewpage的联动效果的实现