在使用TabLayout+AppLayout做了个悬浮折叠多tab的效果之后(效果参见上一篇文章)
发现点击TabLayout没反应
折腾了好一段时间什么事件拦截反射重新设置onClick都试过没用,后来发现自己犯了一个很沙雕的错。先上代码:
<?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"
>
<include layout="@layout/include_title_bar"></include>
<android.support.design.widget.CoordinatorLayout
android:id="@+id/CoordinatorLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:elevation="0dp"
android:background="@color/red">
<android.support.design.widget.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<ImageView
android:layout_width="match_parent"
android:layout_height="@dimen/x300"
android:scaleType="centerCrop"
android:src="@mipmap/bg_a41_bwh_nd" />
</android.support.design.widget.CollapsingToolbarLayout>
<android.support.design.widget.TabLayout
android:id="@+id/tabLayout"
android:layout_width="match_parent"
android:layout_height="@dimen/x89"
android:layout_gravity="bottom"
android:background="@color/white"
android:paddingBottom="@dimen/x1"
app:indicatorColor="#FFFF6A9D"
app:indicatorHeight="@dimen/x4"
app:indicatorWidth="@dimen/x30"
app:tabGravity="fill"
app:tabIndicatorColor="#FF668C"
app:tabMode="scrollable"
app:tabSelectedTextColor="#FF668C"
app:tabTextAppearance="@style/TabLayoutTextSizeStyle"
app:tabTextColor="#6A6A6A">
</android.support.design.widget.TabLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</android.support.design.widget.CoordinatorLayout>
</LinearLayout>
后来发现是ViewPager放在继承了ViewGroup的CoordinatorLayout里面,导致覆盖了TabLayout,难怪点击不了。
在ViewPager那里加一句:
app:layout_behavior="@string/appbar_scrolling_view_behavior"
就完美解决。
TabLayout用了几个原生控件没有的属性~不要在意这些细节
写下这个博客记录博主沙雕错误,以后别再犯