LinearLayout中<include>标签引入的Footer不可见问题求助
Hey there! Let's break down why your Footer isn't showing up and fix it right away.
问题原因
Your vertical LinearLayout has a height of match_parent, but the ViewPager (your Body section) is using wrap_content for its height. If the content inside the ViewPager is long enough, it will take up all the remaining screen space after the Header, pushing the Footer completely off-screen. Also, the android:layout_below="@+id/toolbar" attribute on your TabLayout is useless here—LinearLayout arranges elements in order, so that RelativeLayout-specific property does nothing and can be removed.
修复方案
We need to make the ViewPager take up all the available space between the Header and Footer, instead of wrapping its content. Here's how to adjust your layout:
- Change the ViewPager's
android:layout_heightfromwrap_contentto0dp - Add
android:layout_weight="1"to the ViewPager—this tells the LinearLayout to give it all the remaining space after accounting for the Header and Footer - Remove the invalid
android:layout_below="@+id/toolbar"from the TabLayout - You can also remove the
android:layout_marginBottom="60dp"from the ViewPager, since the Footer will now sit right below it without needing extra margin
修改后的完整布局代码
<?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" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <!-- Header --> <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/AppTheme.AppBarOverlay"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:popupTheme="@style/AppTheme.PopupOverlay" /> <android.support.design.widget.TabLayout android:id="@+id/tab_layout" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="?attr/actionBarSize" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" /> </android.support.design.widget.AppBarLayout> <!-- Body --> <android.support.v4.view.ViewPager android:id="@+id/view_pager" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" /> <!-- Footer --> <include android:id="@+id/include" layout="@layout/smallplayer" android:layout_width="match_parent" android:layout_height="60dp" /> </LinearLayout>
This setup will keep your Header at the top, make the ViewPager fill the middle space, and lock the Footer at the bottom of the screen—no matter how long the ViewPager content is.
内容的提问来源于stack exchange,提问作者Sunil Meena

