【问题标题】:how includeing xml layout to another correctly?如何正确地将 xml 布局包含到另一个中?
【发布时间】:2016-01-09 16:36:19
【问题描述】:

我正在尝试为我的 android 应用程序设计布局。我有一个主要布局,我想在其中包含另一个布局,用于总结 xml 代码并更好地理解自己的布局。 我写了下面的 xml 代码,但给出了这个错误: 您必须指定一个有效的布局参考。布局 ID @layout/this_must_be_include 无效。 现在我可以解决我的问题吗? 如果您知道问题所在,请更改我的代码。如果需要任何更改,请帮助我进行修改。 非常感谢你。 这是主要的:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" 
android:id="@+id/main_scroll"
android:orientation="vertical" android:background="@color/White">


<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:paddingLeft="3dp"
android:paddingRight="3dp" >

<LinearLayout
    android:id="@+id/liner_merge"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:paddingLeft="4dp"
    android:paddingRight="4dp">
   <include layout="@layout/liner_merge"/>
 </LinearLayout>

</LinearLayout>

</ScrollView>

这是必须包含的xml:

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

<LinearLayout
    android:id="@+id/liner_footer1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:paddingTop="2dp" >

    <TableLayout
        android:layout_width="wrap_content"
        android:layout_height="fill_parent" >

        <TableRow >

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="left"
                android:paddingLeft="5dp" >

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="bottom"
                    android:paddingLeft="10px"
                    android:text="File name :"
                    android:textColor="@color/Black" />
            </LinearLayout>
        </TableRow>

        <TableRow >

            <LinearLayout
                android:layout_width="270dp"
                android:layout_height="wrap_content"
                android:paddingLeft="10dp"
                android:paddingRight="10dp" >

                <EditText
                    android:layout_width="200dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="4.69"
                    android:text="Untitled"
                    android:textSize="14dp" >

                    <requestFocus />
                </EditText>
            </LinearLayout>
        </TableRow>

        <TableRow >

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="left"
                android:paddingLeft="5dp" >

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="bottom"
                    android:paddingLeft="10px"
                    android:text="Save path :"
                    android:textColor="@color/Black" />
            </LinearLayout>
        </TableRow>

        <TableRow >

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingLeft="10dp"
                android:paddingRight="10dp" >

                <EditText
                    android:id="@+id/edPathSave"
                    android:layout_width="270dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="/mnt/sdcard/My Audios/"
                    android:textSize="14dp" />
            </LinearLayout>
        </TableRow>
    </TableLayout>
 </LinearLayout>

</LinearLayout>

【问题讨论】:

  • 你的主布局是哪一个???
  • 确保 liner_merge.xml 是您要包含的 xml 的名称..
  • 我在描述中写道,首先是主要的。
  • 我按cntrl+空格,名字是真的
  • @setareshojaei 检查我的答案..

标签: android xml android-layout


【解决方案1】:

您的线性布局 id您要包含的布局的名称(即 liner_merge)相同。删除id或者重命名线性布局的id..

试试这个..

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" 
android:id="@+id/main_scroll"
android:orientation="vertical" 
android:background="@color/White">


<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingLeft="3dp"
android:paddingRight="3dp" >

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingLeft="4dp"
    android:paddingRight="4dp">

   <include 
      layout="@layout/liner_merge"/>

 </LinearLayout>

</LinearLayout>

</ScrollView>

【讨论】:

  • @setareshojaei 两者都不相同。我已删除代码中的 android:id="@+id/liner_merge" 行。
  • 如果我的问题有助于理解新事物,请也给我投票!
【解决方案2】:
<include
        android:id="@+id/incld"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        layout="@layout/header" />

这里 layout="@layout/header" header 是您想要包含在另一个布局中的布局名称,只需将此代码添加到您的第二个布局中即可:)

【讨论】:

  • 但我希望将第二个布局包含在第一个布局中,这是主要的。
  • 你可以在任何地方添加这个代码,就像视图一样工作,你也可以像上面一样为布局等提供参考,就像任何其他布局一样:)
【解决方案3】:

只需在另一个布局中的位置包含布局。

<include layout="@layout/your_layout_to_be_included"/> 

【讨论】:

    猜你喜欢
    • 2015-05-24
    • 1970-01-01
    • 1970-01-01
    • 2012-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-10
    • 1970-01-01
    相关资源
    最近更新 更多