Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android viewpager内部线性布局不考虑重量_Android_Android Layout_Android Viewpager - Fatal编程技术网

Android viewpager内部线性布局不考虑重量

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文件:

<?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”解决了问题