我正在开发Android 3.1。及以上申请。
在一项活动中,我动态生成其布局。我正在使用 formdetail.xml 作为contentview:
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.formdetail);
Bundle extras = getIntent().getExtras();
if (extras != null)
{
currentFormId = extras.getString("FormId");
}
}
formdetail.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/detailLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<Button
android:id="@+id/downloadFormsButton"
android:enabled="false"
android:layout_alignParentLeft="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:text="@string/download_forms_button" />
<TextView
android:id="@+id/formErrorMsg"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:textSize="16dp" >
</TextView>
</RelativeLayout>
</LinearLayout>
downloadFormsButton
和formErrorMsg
必须始终保持形式。
但是使用那个xml我收到了这个警告:
This RelativeLayout layout or its LinearLayout parent is useless
我需要linearLayout以编程方式添加TableLayouts。
如何解决此警告?
答案 0 :(得分:13)
Lint在它的警告中是正确的,你的LinearLayout没有做任何有用的事情,因为它唯一的子节点是RelativeLayout。删除LinearLayout:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/detailLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button android:id="@+id/downloadFormsButton"
android:enabled="false"
android:layout_alignParentLeft="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:text="@string/download_forms_button" />
<TextView
android:id="@+id/formErrorMsg"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:textSize="16dp" />
</RelativeLayout>
答案 1 :(得分:8)
您可以忽略它或右键单击您的项目。点击Build Path->Configure Build Path...
。在Android Lint Preferences
下查找UselessParent
并将其严重性设置为忽略或点击Ignore All
。
编辑:
我把最后一部分拿回去了。我认为Ignore All
会清除所有Lint警告和错误。
答案 2 :(得分:2)
我的应用布局也遇到了同样的问题。
我不知道如何以及它是否正确,但在将背景属性设置为两个布局后,这个问题就解决了。
现在没有警告,工作完美。希望它也适合你。
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:background="@drawable/bg"
android:layout_height="match_parent" >
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginBottom="10dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:background="@drawable/bg2"
android:layout_marginTop="10dp" >
<ImageView
android:id="@+id/img_BookImage"
android:layout_width="200dp"
android:layout_height="200dp"
android:scaleType="fitXY"
android:contentDescription="@string/India"
android:src="@drawable/india" />
</FrameLayout>
</FrameLayout>
答案 3 :(得分:1)
这只是来自lint
的警告。 Lint
不知道您以后会将视图附加到此布局,它会警告您添加了不必要的额外视图(增加布局深度)。
您应该忽略该警告(如果真的困扰您,请lint
上的how to remove warnings上的链接。