【问题标题】:You must supply layout_width attribute exception您必须提供 layout_width 属性异常
【发布时间】:2014-04-24 23:54:02
【问题描述】:

我的布局在底部的顶部 2 个按钮上有标题,中间有一些文本视图和编辑文本。我愿意将这些 EditText 和 Text 视图放在滚动视图中,以便我可以滚动并且 EditText 不会隐藏在键盘后面。

这是我的 XML 文件,很抱歉它有点冗长,但是请查看这个文件,让我知道这个文件有什么问题。我总是得到
java.lang.RuntimeException:二进制 XML 文件第 73 行:您必须提供 layout_width 属性。 我尝试了很多方法来改变宽度和高度,但我总是得到这个错误。

XML 文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:gravity="center_horizontal">
        <!-- Title(Preview) Background and  Text-->
        <RelativeLayout
            android:id="@+id/previewBG"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/title_bg">

            <TextView
                android:id="@+id/previewTxt"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/addDevicesTittle"
                android:textSize="24sp"
                android:typeface="sans"
                android:textColor="#ffffff"
                android:layout_centerInParent="true"
            >
            </TextView>
        </RelativeLayout>
        <!--  Title(Preview) Background and  Text End -->
                <!--  Buttons  -->
        <LinearLayout
        android:id="@+id/Buttons" 
        android:layout_width="fill_parent" 
        android:layout_height="60dip"
        android:layout_alignParentBottom="true"
        android:background="@color/COL_BTNBG">      

            <LinearLayout
                android:id="@+id/btnRefresh_part"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:padding="6dip">


                <Button
                    android:id="@+id/btnSave"
                    android:layout_width="fill_parent"
                    android:layout_height="49dip"
                    android:text="@string/btn_manual_save"
                    android:textSize="24sp"
                    android:typeface="sans"
                    android:textColor="@color/COL_WHITE"
                    android:layout_weight ="1"
                    android:background="@+drawable/button_02"

                >
                </Button>
                <Button
                    android:id="@+id/btnCancel"
                    android:layout_width="fill_parent"
                    android:layout_height="49dip"
                    android:text="@string/btn_manual_cancel"
                    android:textSize="24sp"
                    android:typeface="sans"
                    android:textColor="@color/COL_WHITE"
                    android:layout_weight ="1"
                    android:background="@+drawable/button_02"

                >
                </Button>   

            </LinearLayout>
        </LinearLayout>
        <!--  Buttons End -->

        <ScrollView
            android:id="@+id/scrollView"
            android.layout_width="50dip"
            android.layout_height="300dip" 
            android:layout_below="@+id/previewBG"
            >

            <RelativeLayout
                android:id="@+id/Data" 
                android:layout_width="fill_parent" 
                android:layout_height="fill_parent"
                android:isScrollContainer="true">

                <TextView
                    android:id="@+id/domain_view"
                    android:layout_height="wrap_content"
                    android:layout_width="wrap_content"
                    android:text="@string/txtDomain"
                    android:gravity="left"
                    android:textAppearance="?android:attr/textAppearanceMedium" 
                    android:layout_marginLeft="20dip" 
                    android:layout_marginRight="20dip"
                    android:layout_alignParentTop = "true" 
                    android:layout_marginTop="10dip"/>

                <EditText
                    android:id="@+id/domain_edit"
                    android:layout_height="wrap_content"
                    android:layout_width="fill_parent"
                    android:layout_marginLeft="20dip"
                    android:layout_marginRight="20dip"
                    android:scrollHorizontally="true"
                    android:singleLine ="true"
                    android:autoText="false"
                    android:hint ="@string/txtDomainExample"
                    android:capitalize="none"        
                    android:gravity="fill_horizontal"
                    android:layout_below = "@+id/domain_view"                   
                    android:textAppearance="?android:attr/textAppearanceMedium" />

                <TextView
                    android:id="@+id/ip_view"
                    android:layout_height="wrap_content"
                    android:layout_width="wrap_content"
                    android:text="@string/manual_IP"
                    android:gravity="left"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:layout_below = "@+id/domain_edit"                   
                    android:layout_marginLeft="20dip" 
                    android:layout_marginRight="20dip"                   
                    android:layout_marginTop="10dip"/>


                <EditText
                    android:id="@+id/ip_edit"
                    android:layout_height="wrap_content"
                    android:layout_width="fill_parent"
                    android:layout_marginLeft="20dip"
                    android:layout_marginRight="20dip"
                    android:scrollHorizontally="true"
                    android:singleLine ="true"
                    android:autoText="false"
                    android:hint ="@string/enter_IP_address"
                    android:capitalize="none"        
                    android:gravity="fill_horizontal"
                    android:layout_below = "@+id/ip_view"                   
                    android:textAppearance="?android:attr/textAppearanceMedium" />


                <TextView
                    android:id="@+id/user_view"
                    android:layout_height="wrap_content"
                    android:layout_width="wrap_content"
                    android:text="@string/txtUserName"
                    android:gravity="left"                  
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:layout_below = "@+id/ip_edit" 
                    android:layout_marginLeft="20dip" 
                    android:layout_marginRight="20dip" 
                    android:layout_marginTop="10dip"/>

                <EditText
                    android:id="@+id/user_edit"
                    android:layout_height="wrap_content"
                    android:layout_width="fill_parent"
                    android:layout_marginLeft="20dip"
                    android:layout_marginRight="20dip"
                    android:scrollHorizontally="true"       
                    android:hint ="@string/txtUserNameExample"
                    android:singleLine ="true"
                    android:autoText="false"
                    android:capitalize="none"
                    android:gravity="fill_horizontal"
                    android:layout_below = "@+id/user_view"                 
                    android:textAppearance="?android:attr/textAppearanceMedium" />


                <TextView
                    android:id="@+id/password_view"
                    android:layout_height="wrap_content"
                    android:layout_width="wrap_content"
                    android:text="@string/txtPassword"
                    android:gravity="left"                  
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:layout_below = "@+id/user_edit" 
                    android:layout_marginLeft="20dip" 
                    android:layout_marginRight="20dip" 
                    android:layout_marginTop="10dip"/>

                <EditText
                    android:id="@+id/password_edit"
                    android:layout_height="wrap_content"
                    android:layout_width="fill_parent"
                    android:layout_marginLeft="20dip"
                    android:layout_marginRight="20dip"
                    android:scrollHorizontally="true"
                    android:hint ="@string/txtPasswordExample"
                    android:singleLine ="true"
                    android:autoText="false"
                    android:capitalize="none"
                    android:gravity="fill_horizontal"                   
                    android:password = "true"
                    android:layout_below = "@+id/password_view"
                    android:textAppearance="?android:attr/textAppearanceMedium" />

                 </RelativeLayout>   
        </ScrollView>

</RelativeLayout>

【问题讨论】:

    标签: android-layout


    【解决方案1】:

    你的 ScrollView 有 android.layout_width 而不是 android:layout_width ...类似的 layout_height

    注意点而不是冒号

    这可能是你的问题

    【讨论】:

    • 谢谢!!!确实这就是问题所在……我对自己的感觉多么愚蠢……而且 xml 文件中没有显示错误……
    【解决方案2】:

    Sachin 的答案是专门针对您的问题的解决方案。我只想增加我两分钱的价值,在 Eclipse 中,通过从 XML 视图切换到 Graphical Layout 选项卡,Eclipse 尝试解析 XML,发现问题并建议快速修复,这就像魔术一样工作。无需在模拟器中启动应用程序即可查看堆栈跟踪,因为它爆炸了。

    【讨论】: