#android #layout #android-relativelayout #android-xml
#Android #макет #android-relativelayout #android-xml
Вопрос:
В моем приложении я хочу иметь две статические части в качестве верхнего и нижнего колонтитулов. я добавил это в layout xml и, используя относительный макет, у меня все отлично работало. Но когда я попытался добавить XML заголовка отдельно, используя include. Верхний и средний вид экрана перекрываются. пожалуйста, подскажите, как я могу это устранить.
вот 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="wrap_content">
<TableLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:stretchColumns="*">
<TableRow android:layout_width="wrap_content" android:layout_height="10px" android:gravity="center|center_vertical|center_horizontal">
<ImageView android:id="@ id/icon" android:src="@drawable/iconhome" android:layout_width="wrap_content" android:layout_gravity="left" android:layout_height="wrap_content"/>
<TextView android:text="Application" android:id="@ id/txtTitlevalue" android:textColor="#800517" android:textSize="18px" android:layout_height="wrap_content" android:gravity="center|left" android:textStyle="bold" android:layout_width="wrap_content" android:layout_weight="1"/>
</TableRow>
<TableRow android:layout_width="fill_parent" android:layout_height="15px" android:background="#800517" android:gravity = "center|center_vertical">
<TextView android:text=" n " android:layout_height="3px"/>
</TableRow>
</TableLayout>
</RelativeLayout>
и другой XML, в который я включаю header.xml является,
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:background="#FFFFFF"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<include android:layout_height="wrap_content" layout="@layout/header" />
<ScrollView android:layout_width="fill_parent" android:layout_height="wrap_content">
<TableLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="15px" android:stretchColumns="*">
<TableRow android:layout_width="fill_parent" android:layout_height="15px" android:padding="5px" android:gravity="center_vertical|left">
<TextView android:text=" SEARCH FOR PROPERTY " android:layout_height="wrap_content" android:textSize="14px" android:textColor="#000000"/>
<ImageView android:id="@ id/redarrow" android:src="@drawable/redarrow" android:layout_width="wrap_content" android:layout_gravity="left" android:layout_height="wrap_content"/>
</TableRow>
<TableRow android:layout_width="fill_parent" android:layout_height="15px" android:gravity = "center_vertical">
<TextView android:id="@ id/acct_number1" android:layout_width="fill_parent" android:layout_height="25px" android:text=" I want to: " android:background="#EBDDE2" android:textColor="#000000" android:textSize="13px" android:gravity="center_vertical" android:layout_weight="1"/>
</TableRow>
<TableRow android:layout_width="fill_parent" android:paddingLeft="15px" android:paddingTop="3px" android:paddingBottom="3px" android:paddingRight="15px" android:layout_height="15px" android:gravity = "center_vertical">
<RadioButton android:text="Buy" android:id="@ id/radioButton1" android:textColor="#000000" android:textSize="13px" android:layout_width="0dip" android:layout_height="40px"/>
<RadioButton android:text="Rent" android:id="@ id/radioButton2" android:textColor="#000000" android:textSize="13px" android:layout_width="wrap_content" android:layout_height="40px" android:layout_weight="1"/>
</TableRow>
</TableLayout>
</ScrollView>
</RelativeLayout>
Спасибо,
Ответ №1:
header.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="wrap_content">
<TableLayout android:layout_width="fill_parent" android:layout_alignParentTop="true" android:layout_height="wrap_content" android:stretchColumns="*">
<TableRow android:layout_width="wrap_content" android:background="#FFFFFF" android:layout_height="10px" android:gravity="center|center_vertical|center_horizontal">
<ImageView android:id="@ id/icon" android:src="@drawable/iconhome" android:layout_width="wrap_content" android:layout_gravity="left" android:layout_height="wrap_content"/>
<TextView android:text="Mobile Property" android:id="@ id/txtTitlevalue" android:textColor="#800517" android:textSize="18px" android:layout_height="wrap_content" android:gravity="center|left" android:textStyle="bold" android:layout_width="wrap_content" android:layout_weight="1"/>
</TableRow>
</TableLayout>
</RelativeLayout>
Main.xml (посередине) —>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:background="@drawable/investment"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<ScrollView android:layout_width="fill_parent" android:layout_height="wrap_content">
<TableLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="15px" android:stretchColumns="*">
<include android:layout_height="wrap_content" layout="@layout/header" android:layout_alignParentTop="true" android:id="@ id/cell1" />
<TableRow android:layout_width="fill_parent" android:layout_height="15px" android:padding="5px" android:gravity="center_vertical|left">
<TextView android:text=" SEARCH FOR PROPERTY " android:layout_height="wrap_content" android:textSize="14px" android:textColor="#FFFFFF" android:textStyle="bold"/>
<ImageView android:id="@ id/redarrow" android:src="@drawable/redarrow" android:layout_width="wrap_content" android:layout_gravity="left" android:layout_height="wrap_content"/>
</TableRow>
<TableRow android:layout_width="fill_parent" android:layout_height="15px" android:gravity = "center_vertical">
<TextView android:id="@ id/acct_number1" android:layout_width="fill_parent" android:layout_height="25px" android:text=" I want to: " android:textColor="#FFFFFF" android:textSize="13px" android:gravity="center_vertical" android:layout_weight="1"/>
</TableRow>
<TableRow android:layout_width="fill_parent" android:paddingLeft="15px" android:paddingTop="3px" android:paddingBottom="3px" android:paddingRight="15px" android:layout_height="15px" android:gravity = "center_vertical">
<RadioButton android:text="Buy" android:id="@ id/radioButton1" android:textColor="#FFFFFF" android:textSize="13px" android:layout_width="0dip" android:layout_height="40px"/>
<RadioButton android:text="Rent" android:id="@ id/radioButton2" android:textColor="#FFFFFF" android:textSize="13px" android:layout_width="wrap_content" android:layout_height="40px" android:layout_weight="1"/>
</TableRow>
<TableRow android:layout_width="fill_parent" android:layout_height="15px" android:gravity = "center_vertical">
<TextView android:id="@ id/acct_number1" android:layout_width="fill_parent" android:layout_height="25px" android:text=" Property Type: " android:textColor="#FFFFFF" android:textSize="13px" android:gravity="center_vertical" android:layout_weight="1"/>
</TableRow>
<include android:layout_height="wrap_content" layout="@layout/footer" android:layout_alignParentBottom="true" android:id="@ id/cell" />
</TableLayout>
</ScrollView>
</RelativeLayout>
footer.xml —>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_alignParentBottom="true"
android:layout_height="wrap_content"
android:gravity="center_vertical|center_horizontal|bottom">
<TableLayout android:gravity="center_vertical|center_horizontal|bottom" android:layout_gravity="bottom" android:layout_alignParentBottom="true" android:layout_width="fill_parent" android:id="@ id/tableLayout1" android:layout_height="wrap_content" android:stretchColumns="*">
<TableRow android:layout_width="fill_parent" android:background="#FFFFFF" android:gravity = "center_vertical">
<ImageView android:id="@ id/footerMessageIcon" android:layout_width="wrap_content" android:layout_weight="70" android:layout_gravity="bottom" android:src="@drawable/iconcheck" android:layout_height="wrap_content"/>
<ImageView android:id="@ id/footerCalendarIcon" android:layout_width="wrap_content" android:layout_weight="70" android:layout_gravity="bottom" android:src="@drawable/iconstar" android:layout_height="wrap_content"/>
<ImageView android:id="@ id/footerAccountsIcon" android:layout_width="wrap_content" android:layout_weight="70" android:layout_gravity="bottom" android:src="@drawable/icontools" android:layout_height="wrap_content"/>
</TableRow>
</TableLayout>
</LinearLayout>
Комментарии:
1. capDroid, ты великолепен. Отлично, дорогой, и огромное спасибо, брат. На этот раз все работает нормально. — Раджеш
2. ты самый желанный брат… n также принимайте ответ, чтобы другой пользователь мог получить правильный ответ..
Ответ №2:
используйте LinearLayout вместо RelativeLayout во втором xml..
Комментарии:
1. его выполнение изменило параметр android: layout_height на wrap_content второго xml. спасибо.
2. Но таким образом мой footer.xml не отображается, поскольку я изменил среднюю часть в качестве линейного макета, а нижний колонтитул является относительным макетом. Это работало хорошо, если средний xml имел относительную компоновку.
3. да, дорогой, это не разрешено .. это разрешено для заголовка, но когда средний макет изменился на линейный, он скрывает XML нижнего колонтитула.
4. вы хотите, чтобы вид заголовка был сверху, а вид прокрутки — снизу от вида заголовка?
5. я хочу исправить верхний и нижний колонтитулы, а средняя часть была бы прокручиваемой.
Ответ №3:
попробуйте это…
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:background="@drawable/investment"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<include android:layout_height="wrap_content" layout="@layout/header" android:layout_alignParentTop="true" android:id="@ id/cell1" />
<ScrollView android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_below="@ id/cell1" android:layout_above="@ id/cell">
<TableLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="15px" android:stretchColumns="*">
<TableRow android:layout_width="fill_parent" android:layout_height="15px" android:padding="5px" android:gravity="center_vertical|left">
<TextView android:text=" SEARCH FOR PROPERTY " android:layout_height="wrap_content" android:textSize="14px" android:textColor="#FFFFFF" android:textStyle="bold"/>
<ImageView android:id="@ id/redarrow" android:src="@drawable/redarrow" android:layout_width="wrap_content" android:layout_gravity="left" android:layout_height="wrap_content"/>
</TableRow>
<TableRow android:layout_width="fill_parent" android:layout_height="15px" android:gravity = "center_vertical">
<TextView android:id="@ id/acct_number1" android:layout_width="fill_parent" android:layout_height="25px" android:text=" I want to: " android:textColor="#FFFFFF" android:textSize="13px" android:gravity="center_vertical" android:layout_weight="1"/>
</TableRow>
<TableRow android:layout_width="fill_parent" android:paddingLeft="15px" android:paddingTop="3px" android:paddingBottom="3px" android:paddingRight="15px" android:layout_height="15px" android:gravity = "center_vertical">
<RadioButton android:text="Buy" android:id="@ id/radioButton1" android:textColor="#FFFFFF" android:textSize="13px" android:layout_width="0dip" android:layout_height="40px"/>
<RadioButton android:text="Rent" android:id="@ id/radioButton2" android:textColor="#FFFFFF" android:textSize="13px" android:layout_width="wrap_content" android:layout_height="40px" android:layout_weight="1"/>
</TableRow>
<TableRow android:layout_width="fill_parent" android:layout_height="15px" android:gravity = "center_vertical">
<TextView android:id="@ id/acct_number1" android:layout_width="fill_parent" android:layout_height="25px" android:text=" Property Type: " android:textColor="#FFFFFF" android:textSize="13px" android:gravity="center_vertical" android:layout_weight="1"/>
</TableRow>
</TableLayout>
</ScrollView>
<include android:layout_height="wrap_content" layout="@layout/footer"
android:layout_alignParentBottom="true" android:id="@ id/cell" />
</RelativeLayout>