第二个布局没有在android studio中显示include标签

时间:2016-02-22 02:30:31

标签: android android-layout android-studio android-xml

我设计了两个Android布局,应该按顺序显示。因此,第一个布局必须显示在页面顶部,第二个布局必须显示在页面底部。但是,以下代码仅显示第一个布局。我怎样才能显示第二个布局?

主要布局是

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

    <include layout="@layout/first_layout"/>
    <include layout="@layout/second_layout"/>

</LinearLayout>

第一个xml布局是

<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:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context="net.simplifiedcoding.androidloginapp.UserProfile">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="Large Text"
        android:id="@+id/textView3"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />
</LinearLayout>

第二种布局是

<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:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:orientation="vertical"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"      
    tools:context=".MainActivity">
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Name"
    android:id="@+id/textView" />

<EditText
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/editTextName" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Address"
    android:id="@+id/textView2" />

<EditText
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/editTextAddress" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Insert"
    android:onClick="insert"
    android:id="@+id/button" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/textViewResult" />
</LinearLayout>

4 个答案:

答案 0 :(得分:5)

我还不确定这是否可以解决您的问题,但是您可以尝试在包含的布局中添加android:layout_widthandroid:layout_height以及布局权重吗?

<include layout="@layout/first_layout"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"/>

<include layout="@layout/second_layout"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"/>

添加了信息

您遇到此问题的原因是因为您的布局都使用match_parent作为高度。这意味着在第一个布局中,它将匹配父级的大小(在这种情况下是整个屏幕),因此,第一个布局将占据整个屏幕,第二个布局不会出现。

在此解决方案中,您使用layout_weight告诉两种布局仅占用屏幕的一半。

答案 1 :(得分:3)

在您的第一个布局中,您有

android:layout_height="match_parent"

所以它占据了主要布局的整个高度。将其更改为

android:layout_height="wrap_content"

你应该好。

From the docs

  

根视图应该是您希望在添加此布局的每个布局中显示的方式。

请注意

  

您还可以通过在android:layout_*标记中指定包含布局的根视图的所有布局参数(任何<include/>属性)来覆盖它们。

答案 2 :(得分:1)

您应该在主布局上使用RelativeLayout。如果你使用LinearLayout,一个项目将始终显示在前一个元素之下,因为你的两个布局都是match_parent,第二个将不会显示。

答案 3 :(得分:0)

不幸的是,Android设计人员违反了旧的编程“最少惊喜的原则”。如果我将XML放入TextView中,它将显示在设计器中。如果我为第二个TextView添加xml,我希望它能显示,但不会。为什么?您已经遗漏了一些不需要的晦涩的属性,必须去Stackoverflow才能找到它。我很想知道有多少百分比的人能够成功设计Android应用程序,而无需参加论坛来解决布局问题。我说不到20%。