Правый край радиуса кнопки обрезается в TableView - PullRequest
0 голосов
/ 15 июня 2011

У меня есть кнопка с настраиваемым фоном, который имеет круглые углы. Выглядит нормально, но когда появляется в TableLayout, правый край кнопки обрезается.

Вот соответствующий фрагмент XML-макета, который помещает кнопку в макет таблицы:

    <TableLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/rounded_box_nopadding" android:stretchColumns="1" android:shrinkColumns="1">
        <TableRow android:padding="10dp">
            <TextView android:text="@string/sign_in_email_label" android:textStyle="bold" android:textColor="#000000" android:paddingRight="10dp" />
            <TextView android:text="@string/sign_in_email_hint" />
        </TableRow>
        <TableRow android:layout_height="1dp">
            <View android:layout_width="fill_parent" android:layout_height="1dp" android:background="#dbe3e4" android:layout_span="2" />
        </TableRow>
        <TableRow android:padding="10dp">
            <TextView android:text="@string/sign_in_password_label" android:textStyle="bold" android:textColor="#000000" android:paddingRight="10dp" />
            <TextView android:text="@string/sign_in_password_hint" />
        </TableRow>
        <TableRow android:layout_height="1dp">
            <View android:layout_width="fill_parent" android:layout_height="1dp" android:background="#dbe3e4" android:layout_span="2" />
        </TableRow>
        <TableRow android:padding="10dp">
            <Button android:id="@+id/my_scoopons_sign_in_button" android:layout_height="wrap_content" android:text="@string/sign_in_button_label" android:textColor="@color/button_text_states" 
                android:textSize="20sp" android:textStyle="bold" android:shadowColor="#671610" android:shadowDy="-2" android:shadowRadius="1" android:background="@drawable/button_states"
                android:layout_span="2"/>
            </TableRow>
    </TableLayout>

А вот снимок экрана, иллюстрирующий проблему.

Скриншот Android http://www.petrocky.com/images/device.png

Ответы [ 3 ]

1 голос
/ 16 июня 2011

Мне удалось это исправить, убрав отступ с элемента <TableRow> и добавив поле к <Button>;То есть:

<TableRow>
    <Button android:id="@+id/sign_in_button" android:layout_height="wrap_content" android:text="@string/sign_in_button_label"  
        android:background="@drawable/button_states"
        android:layout_span="2" android:layout_margin="10dp" />
</TableRow>

Поскольку кнопка находится внутри таблицы, она имеет ширину fill_parent.Ширина родительской ячейки рассчитывается с учетом заполнения, но при визуализации она выглядит слишком длинной.Используя маржу на кнопке, проблема решена.

0 голосов
/ 15 июня 2011

Проблема была в кнопке layout_span и также не имела ширины кнопки

Вы должны установить android:layout_height="wrap_content", и я думаю, что удалить android:layout_span="2" Я изменил ваш код.

привет Мика,

Попробуйте ввести следующий код.

    <TableLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/rounded_box_nopadding" android:stretchColumns="1" android:shrinkColumns="1">
    <TableRow android:padding="10dp">
        <TextView android:text="@string/sign_in_email_label" android:textStyle="bold" android:textColor="#000000" android:paddingRight="10dp" />
        <TextView android:text="@string/sign_in_email_hint" />
    </TableRow>
    <TableRow android:layout_height="1dp">
        <View android:layout_width="fill_parent" android:layout_height="1dp" android:background="#dbe3e4" android:layout_span="2" />
    </TableRow>
    <TableRow android:padding="10dp">
        <TextView android:text="@string/sign_in_password_label" android:textStyle="bold" android:textColor="#000000" android:paddingRight="10dp" />
        <TextView android:text="@string/sign_in_password_hint" />
    </TableRow>
    <TableRow android:layout_height="1dp">
        <View android:layout_width="fill_parent" android:layout_height="1dp" android:background="#dbe3e4" android:layout_span="2" />
    </TableRow>
    <TableRow android:padding="10dp">
        <Button android:id="@+id/my_scoopons_sign_in_button" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="@string/sign_in_button_label" android:textColor="@color/button_text_states" 
            android:textSize="20sp" android:textStyle="bold" android:shadowColor="#671610" android:shadowDy="-2" android:shadowRadius="1" android:background="@drawable/button_states"
            />
        </TableRow>
</TableLayout>

Спасибо, Deepak

0 голосов
/ 15 июня 2011

В этом коде кнопки отсутствует android:layout_width.Может быть причина.

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