我的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">
<TextView android:id="@+id/Title" android:text="title"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:singleLine="true" android:layout_alignParentTop="true" />
<EditText android:id="@+id/ReplyText" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:gravity="top"
android:layout_below="@+id/Title" android:layout_above="@+id/Save" />
<!-- <WebView android:id="@+id/webview" android:layout_width="fill_parent"-->
<!-- android:layout_height="fill_parent" android:layout_below="@+id/Title"-->
<!-- android:layout_above="@+id/Save"/>-->
<Button android:text="Save" android:id="@+id/Save"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" />
</RelativeLayout>
输出sdk 3(1.5)和sdk 9(2.3)
问题:为什么EditText没有以1.5版本显示?
必须有这样的解决方案,因为如果我用WebView替换EditText 在onCreate方法中添加了一些代码:
WebView mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadData("test", "text/html", "utf-8");
mWebView.setWebViewClient(new WebViewClient());
它在两个版本中都完美地显示了WebView。
目标:我想设置页眉和页脚元素,如图所示,中间元素应该具有其余部分的完整高度/宽度。
答案 0 :(得分:4)
不确定这是否可能是问题,但这是错误的:
android:layout_below="@+id/Title" android:layout_above="@+id/Save"
@+id
表示添加新ID,在这种情况下,您将引用已定义的ID(您在android:id="@+id/Title"
和android:id="@+id/Save"
中定义它们。)
此外,在组件本身之前引用id时,我遇到了一些问题(在这种情况下,您在EditText中说它位于按钮上方,按钮稍后定义)
我会写这样的整个布局:
<?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">
<TextView android:id="@+id/Title"
android:text="title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:layout_alignParentTop="true" />
<Button android:text="Save"
android:id="@+id/Save"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" />
<EditText android:id="@+id/ReplyText"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="top"
android:layout_below="@id/Title"
android:layout_above="@id/Save" />
</RelativeLayout>
答案 1 :(得分:-1)
如果深度分层可能是个问题,您也可以像这样定义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">
<TextView android:id="@+id/Title"
android:text="title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:layout_alignParentTop="true" />
<EditText android:id="@+id/ReplyText"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="top"
android:layout_below="@id/Title"
android:layout_above="@+id/Save" />
<Button android:text="Save"
android:id="@id/Save"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" />
</RelativeLayout>
请注意,id不是随元素本身添加的,而是首先提到的:
android:layout_above="@+id/Save" />
<Button android:text="Save"
android:id="@id/Save"