<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="0dp"
android:minHeight="?attr/actionBarSize"
app:layout_constraintTop_toTopOf="parent"
app:tabBackground="@color/colorPrimary"
app:tabIndicatorColor="@android:color/white"
app:tabMode="fixed"
app:tabSelectedTextColor="@android:color/white"
app:tabTextColor="@android:color/white">
</android.support.design.widget.TabLayout>
<android.support.v4.view.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintTop_toBottomOf="@id/tab_layout"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintVertical_weight="1">
</android.support.v4.view.ViewPager>
</android.support.constraint.ConstraintLayout>
ViewPager中的Fragment霹期,放的就是圖中的那個RecyclerView(RecyclerView的最后一個條目顯示不全)趁桃。ViewPager的高度設為0dp嗓违,app:layout_constraintVertical_weight為1瓷翻,其實就和LinearLayout中的weight是一樣的赖歌。 app:layout_constraintTop_toBottomOf="@id/tab_layout"表示ViewPager在TabLayout的下面。
RecyclerView最后一個條目為什么會顯示不全芜壁?這是因為在ConstraintLayout中礁凡,如果height設置為0,就一定要給控件設置上約束和下約束慧妄。這里的ViewPager只設置了上約束在tablayout的下面顷牌,而沒有設置下約束。只要加上app:layout_constraintBottom_toBottomOf=“parent”腰涧,給ViewPager設置一個下約束在parent的上面韧掩,問題就解決了
關鍵點:android:layout_height="0dp"
app:layout_constraintTop_toBottomOf="@id/tab_layout"
app:layout_constraintBottom_toBottomOf="parent"