嵌套的LinearLayout只显示第一个视图(Nested LinearLayout shows

2019-10-30 23:20发布

我已经看到了一些问题可能与此类似。 然而,这些情况是不同的,有些是不适合初学者。
所以我刚开始的Android最近。 请理解,我是新来的*.xml 。 总之,我关心的是关于嵌套LinearLayout ,只显示第一个View

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <LinearLayout 
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_height="match_parent"
        android:layout_width="match_parent"
        android:orientation="horizontal">

        <TextView
            android:layout_gravity="center"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:layout_width="0dp"
            android:textSize="20sp"
            android:text="@string/app_title">
        </TextView>

    </LinearLayout>

    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_height="match_parent"
        android:layout_width="match_parent"
        android:orientation="horizontal">

        <Button 
            android:layout_gravity="center"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:text="@string/button_ok"
            android:onClick="changeMessage">
        </Button>

        <TextView
            android:layout_gravity="center"
            android:textSize="20sp"
            android:id="@+id/this_text"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:text="@string/sample_text">
        </TextView>

    </LinearLayout>

</LinearLayout>

这里的XML至今。 与此代码,仅第一TextView的仅表示。

Answer 1:

android:layout_height="match_parent"嵌套的高度LinearLayoutwrap_content代替match_parent



Answer 2:

因为你给了第一LinearLayout宽度和高度matchparent

改变其高度wrapcontent

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:orientation="horizontal">

    <TextView
        android:layout_gravity="center"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:layout_width="0dp"
        android:textSize="20sp"
        android:text="@string/app_title">
    </TextView>

</LinearLayout>

// other layouts


Answer 3:

改变布局,如下

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity" >
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="match_parent"
    android:layout_width="wrap_content"
    android:orientation="horizontal">

    <TextView
        android:layout_gravity="center"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:layout_width="0dp"
        android:textSize="20sp"
        android:text="@string/app_title">
    </TextView>

</LinearLayout>

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="match_parent"
    android:layout_width="wrap_content"
    android:orientation="horizontal">

    <Button 
        android:layout_gravity="center"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="@string/button_ok"
        android:onClick="changeMessage">
    </Button>

    <TextView
        android:layout_gravity="center"
        android:textSize="20sp"
        android:id="@+id/this_text"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="@string/sample_text">
    </TextView>

</LinearLayout>

你内心的布局与父布局,只有第一个布局将显示匹配。



文章来源: Nested LinearLayout shows only the first View