Проблема дизайна макета - PullRequest
2 голосов
/ 14 мая 2011

Я проектировал макет, но столкнулся с проблемой. Каким-то образом, у меня есть пустое место справа от моей таблицы, и я не могу его заполнить. Если у кого-нибудь есть идея, то не могли бы вы мне помочь?

Ниже приведен мой макет xml и скриншот, чтобы показать, что именно радует; кстати, причина, по которой я использую tablelayout, заключается в том, чтобы поместить туда некоторые элементы, используя взаимодействие с пользователем.

Заранее спасибо


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >

<LinearLayout android:id="@+id/header" android:layout_height="wrap_content" android:layout_width="match_parent">
    <TextView android:id="@+id/header_life_title" android:textSize="20sp" android:text="Life: " android:layout_height="wrap_content" android:layout_width="wrap_content"></TextView>
    <TextView android:id="@+id/header_life_value" android:textSize="20sp" android:text="20" android:layout_height="wrap_content" android:layout_width="wrap_content"></TextView>
    <Button android:text="Inc." android:id="@+id/header_btn_inc" android:layout_width="wrap_content" android:layout_height="35dp" android:layout_gravity="center_vertical">
    <Button android:text="Dec." android:id="@+id/header_btn_dec" android:layout_width="wrap_content" android:layout_height="35dp"></Button>
    <Button android:text="Put L." android:id="@+id/header_btn_putLand" android:layout_width="wrap_content" android:layout_height="35dp"></Button>
    <Button android:text="Remove L." android:id="@+id/header_btn_removeLand" android:layout_width="wrap_content" android:layout_height="35sp">
    <LinearLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:id="@+id/land_space">
    </LinearLayout>
</LinearLayout>
    <ScrollView android:id="@+id/scrollView1" android:layout_height="wrap_content" android:layout_width="match_parent">
        <TableLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/cardboard">
            <LinearLayout android:layout_height="40dp" android:layout_width="match_parent" android:id="@+id/layout_menu">
                <Spinner android:id="@+id/spinner_creature" android:layout_height="wrap_content" android:layout_width="150dp"></Spinner>
                <Button android:id="@+id/btn_creature" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Cast"></Button>
                <Spinner android:id="@+id/spinner_noncreature" android:layout_height="wrap_content" android:layout_width="wrap_content"></Spinner>
                <Button android:id="@+id/btn_noncreature" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Cast"></Button>
                <Button android:id="@+id/btn_delete" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Del."></Button>
            </LinearLayout>
            <TableRow android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/tableRow_cardImage"><![enter image description here][1]/TableRow>
            <TableRow android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/tableRow_cardData"></TableRow>
            <TableRow android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/tableRow_cardImage2"></TableRow>
            <TableRow android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/tableRow_cardData2"></TableRow>
        </TableLayout>
    </ScrollView>
</LinearLayout>

<a href="http://imageshack.us/m/52/2443/111iyr.jpg" rel="nofollow noreferrer">http://imageshack.us/m/52/2443/111iyr.jpg</a>

1 Ответ

1 голос
/ 14 мая 2011

Вы можете использовать атрибут LinearLayout s layout_weight, чтобы заставить представления внутри него занимать оставшееся пространство.

Установка атрибута layout_weight на "1" in для всех дочерних представлений заставит их в равной степени занимать оставшееся пространство:

<LinearLayout android:layout_height="40dp"
    android:layout_width="match_parent" android:id="@+id/layout_menu">
    <Spinner android:id="@+id/spinner_creature"
        android:layout_height="wrap_content" android:layout_weight="1"
        android:layout_width="150dp"></Spinner>
    <Button android:id="@+id/btn_creature"
        android:layout_height="wrap_content" android:layout_weight="1"
        android:layout_width="wrap_content" android:text="Cast"></Button>
    <Spinner android:id="@+id/spinner_noncreature"
        android:layout_height="wrap_content" android:layout_weight="1"
        android:layout_width="wrap_content"></Spinner>
    <Button android:id="@+id/btn_noncreature"
        android:layout_height="wrap_content" android:layout_weight="1"
        android:layout_width="wrap_content" android:text="Cast"></Button>
    <Button android:id="@+id/btn_delete"
        android:layout_height="wrap_content" android:layout_weight="1"
        android:layout_width="wrap_content" android:text="Del."></Button>
</LinearLayout>

Ширинадочерние виды установлены на wrap_content, поэтому они не будут расширяться при изменении ориентации телефона, даже если у родителя больше места по горизонтали.Используя layout_weight, вы можете установить для каждого дочернего представления часть, сколько из оставшегося места родителя должно заполнить.

Для получения дополнительной информации: LinearLayout.LayoutParams

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...