Android: Относительная проблема макета - PullRequest
0 голосов
/ 18 января 2011

Мой 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) alt text

Вопрос: Почему EditText не отображаетсяв версии 1.5?

Должно быть решение этой проблемы, потому что если я заменю EditText на WebView с небольшим кодом, добавленным в методе onCreate:

WebView mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadData("test", "text/html", "utf-8");
mWebView.setWebViewClient(new WebViewClient());

Он прекрасно отображает WebView вверсия.

Цель: Я хочу установить элементы верхнего и нижнего колонтитула, как показано на рисунке, и средний элемент должен иметь полную высоту / ширину остальной части места.

Ответы [ 2 ]

4 голосов
/ 18 января 2011

Не уверен, что это может быть проблемой, но это неправильно:

android:layout_below="@+id/Title" android:layout_above="@+id/Save"

@+id означает добавление нового идентификатора, и в этом случае вы ссылаетесь на уже определенные идентификаторы (вы определяетеих в android:id="@+id/Title" и android:id="@+id/Save").

Также у меня были некоторые проблемы в прошлом при обращении к идентификатору перед самим компонентом (в этом случае вы говорите в 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>
0 голосов
/ 07 июня 2011

Если может возникнуть проблема с разделением по глубине, вы также можете определить 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>

Обратите внимание, что идентификатор добавляется не с самим элементом, а с самого первого упоминания:

  android:layout_above="@+id/Save" />
    <Button android:text="Save"
        android:id="@id/Save"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...