Android viewpager内部线性布局不考虑重量
我有一个xml文件:Android viewpager内部线性布局不考虑重量,android,android-layout,android-viewpager,Android,Android Layout,Android Viewpager,我有一个xml文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignParentBottom="true" andro
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:orientation="vertical"
android:weightSum="1">
<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pager"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0">
<android.support.v4.view.PagerTitleStrip
android:id="@+id/pager_title_strip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0"
android:background="#A00A0A"
android:paddingBottom="4dp"
android:paddingTop="4dp" />
</android.support.v4.view.ViewPager>
<Switch
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_weight="1"
android:text="New Switch" />
</LinearLayout>
我的问题是,无论我输入了什么设置或权重,ViewPager都会填充父级的高度,但看不到开关
如何解决这个问题?如果你用体重来衡量身高,那么你的身高应该是0dp。试试这个答案
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1">
<android.support.v4.view.PagerTitleStrip
android:id="@+id/pager_title_strip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#A00A0A"
android:paddingBottom="4dp"
android:paddingTop="4dp" />
</android.support.v4.view.ViewPager>
<Switch
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="New Switch" />
</LinearLayout>
如果您设置了
ViewPager
的高度wrap\u content
则无所谓。它的行为就像
android:layout_height="match_parent"
您必须设置一个特定的维度
android:layout_height="150dp"
或者,如果您在RelativeLayout
中使用它,您可以使用
android:layout_height="0dp"
android:layout_weight="1"
或者您必须设置开关alignParentBottom
,并在其上方设置ViewPager
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true">
<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pager"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_above="@+id/my_switch">
<android.support.v4.view.PagerTitleStrip
android:id="@+id/pager_title_strip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#A00A0A"
android:paddingBottom="4dp"
android:paddingTop="4dp"
/>
</android.support.v4.view.ViewPager>
<Switch
android:id="@+id/my_switch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_alignParentBottom="true"
android:layout_weight="1"
android:text="New Switch" />
</RelativeLayout>
将视图页面的权重设置为1,这样就解决了问题!我们不能使用layout_alighParentBottom在线性布局内切换。layout_alighParentBottom是RelativeLayout的一个属性。你的答案是错的。是的,你是对的。我没有意识到。因为您在根视图中使用了android:layout\u alignParentBottom=“true”android:layout\u centerHorizontal=“true”。您必须将其更改为相对布局。这确实纠正了这一点,我注意到正如“AndroidEnthusiast”所说,将权重更改为“1”解决了问题