#android
#Android
Вопрос:
я хочу создать XML-дизайн Android в следующем формате, который я сделал, но он не работает.
макет xml: кодирование
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@ id/LinearLayout01"
android:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<TableLayout android:id="@ id/widget836"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView android:id="@ id/widget837" android:layout_width="wrap_content"
android:layout_height="wrap_content">
</ImageView>
</TableLayout>
<ScrollView android:id="@ id/ScrollView111"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<AbsoluteLayout android:id="@ id/widget883"
android:layout_width="wrap_content" android:layout_height="wrap_content">
<EditText android:id="@ id/email" android:layout_width="303px"
android:layout_height="56px" android:text="Email" android:textSize="18sp"
android:layout_x="1px" android:layout_y="15px">
</EditText>
<EditText android:id="@ id/pass" android:layout_width="303px"
android:layout_height="56px" android:text="password"
android:textSize="18sp" android:layout_x="3px" android:layout_y="57px">
</EditText>
<TextView android:id="@ id/enter" android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="Enter an email address and password above, and your accout will be created."
android:layout_x="0px" android:layout_y="65px">
</TextView>
<TextView android:id="@ id/primarydisplay"
android:layout_width="100px" android:layout_height="40px"
android:text="Primary Display" android:textStyle="bold"
android:layout_x="0px" android:layout_y="75px">
</TextView>
<TextView android:id="@ id/gps" android:layout_width="100px"
android:layout_height="40px" android:text="Speed >"
android:textStyle="bold" android:layout_x="200px" android:layout_y="75px">
</TextView>
</AbsoluteLayout>
<AbsoluteLayout android:id="@ id/widget884"
android:layout_width="wrap_content" android:layout_height="wrap_content">
<TextView android:id="@ id/distanceunit"
android:layout_width="100px" android:layout_height="40px"
android:text="Distance Unit" android:textStyle="bold"
android:layout_x="0px" android:layout_y="85px">
</TextView>
<TextView android:id="@ id/miles" android:layout_width="100px"
android:layout_height="40px" android:text="Miles >"
android:textStyle="bold" android:layout_x="200px" android:layout_y="85px">
</TextView>
</AbsoluteLayout>
</ScrollView>
</LinearLayout>
Ошибка cat журнала:
Вызвано: java.lang.Исключение IllegalStateException: ScrollView может содержать только один прямой дочерний элемент
пожалуйста, поправьте меня.
Комментарии:
1. чувак, ты можешь добавить только один дочерний вид в scrollview, поэтому просто поместите эти два абсолютных макета в один макет и добавьте его в режим прокрутки. вот и все.
2. привет, как объединить макет Absloute в один.? пожалуйста, поправьте меня
3. просто поместите эти два макета в один linearlayout, а затем добавьте его в scrollview
4. привет, я объединяю два абсолютных макета, но второй абсолютный отображается только без прокрутки. установил ли я высоту и ширину для абсолютного макета. теперь у него есть fill_parent.
Ответ №1:
У вас может быть только один прямой дочерний элемент в a, Scrollview
поэтому вам следует либо объединить ваши два AbsoluteLayout
элемента, либо обернуть их в другой элемент, такой как another AbsoluteLayout
element.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@ id/LinearLayout01"
android:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<TableLayout android:id="@ id/widget836"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView android:id="@ id/widget837" android:layout_width="wrap_content"
android:layout_height="wrap_content">
</ImageView>
</TableLayout>
<ScrollView android:id="@ id/ScrollView111"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<!-- Wrap -->
<AbsoluteLayout
android:layout_width="wrap_content" android:layout_height="wrap_content">
<AbsoluteLayout android:id="@ id/widget883"
android:layout_width="wrap_content" android:layout_height="wrap_content">
<EditText android:id="@ id/email" android:layout_width="303px"
android:layout_height="56px" android:text="Email" android:textSize="18sp"
android:layout_x="1px" android:layout_y="15px">
</EditText>
<EditText android:id="@ id/pass" android:layout_width="303px"
android:layout_height="56px" android:text="password"
android:textSize="18sp" android:layout_x="3px" android:layout_y="57px">
</EditText>
<TextView android:id="@ id/enter" android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="Enter an email address and password above, and your accout will be created."
android:layout_x="0px" android:layout_y="65px">
</TextView>
<TextView android:id="@ id/primarydisplay"
android:layout_width="100px" android:layout_height="40px"
android:text="Primary Display" android:textStyle="bold"
android:layout_x="0px" android:layout_y="75px">
</TextView>
<TextView android:id="@ id/gps" android:layout_width="100px"
android:layout_height="40px" android:text="Speed >"
android:textStyle="bold" android:layout_x="200px" android:layout_y="75px">
</TextView>
</AbsoluteLayout>
<AbsoluteLayout android:id="@ id/widget884"
android:layout_width="wrap_content" android:layout_height="wrap_content">
<TextView android:id="@ id/distanceunit"
android:layout_width="100px" android:layout_height="40px"
android:text="Distance Unit" android:textStyle="bold"
android:layout_x="0px" android:layout_y="85px">
</TextView>
<TextView android:id="@ id/miles" android:layout_width="100px"
android:layout_height="40px" android:text="Miles >"
android:textStyle="bold" android:layout_x="200px" android:layout_y="85px">
</TextView>
</AbsoluteLayout>
</AbsoluteLayout>
<!-- /Wrap -->
</ScrollView>
</LinearLayout>
Комментарии:
1. привет, я получил все объединенное верхнее изображение, которое не отображается. как объединить макет Absloute в один.? пожалуйста, поправьте меня.
Ответ №2:
Как указано в ошибке, ScrollView
предназначен для одного дочернего элемента. Ваш содержит два AbsoluteLayout
s. Можно ли объединить эти виды?
Ответ №3:
я не понимаю, почему вы хотите использовать два абсолютных макета внутри режима прокрутки……
Поместите их в единый макет
Также обратите внимание, что использование AbsoluteLayout устарело. Попробуйте вместо этого использовать относительные или линейные макеты…
Комментарии:
1. потому что я хочу нарисовать закругленный прямоугольный фон для двух абсолютных макетов в соответствии с дизайном.
2. @murali зачем вам нужен scrollview….. Вы добавляете новые компоненты динамически. Я упомянул об этом, потому что ваши текущие XML-компоненты будут заполнять экран, и поэтому нет необходимости в ScrollView