Подтвердить что ты не робот

Wrap_content не работает в android

"wrap_content" не работает в моей кнопке, в настоящее время это выглядит так:

 now                        want
 ____________
|            |           _____________
|   aaaaaa   |     =>   | aaaaaaaaaaa |
|____________|           -------------

и XML для моих кнопок:

 <Button 
     android:layout_gravity="center"
     android:id="@+id/input_expend"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"                               
     android:textSize="12sp"
     android:text="aaaaaaa"                         
     android:background="@drawable/btn_01"/>
 <Button 
     android:layout_gravity="center"
     android:id="@+id/input_expend"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"                               
     android:textSize="12sp"
     android:text="aaaaaaa"                         
     android:background="@drawable/btn_02"/> 

Как я могу решить эту проблему? Спасибо!

4b9b3361

Ответ 1

Button - это атрибут View, а атрибут android:minHeight установлен 48dip по умолчанию. Вы можете установить minHeight ниже, чем ваш фактический текст "aaaaa", такой как 1dp. Тогда wrap_content будет работать. Но я не думаю, что это рекомендуется.

Ответ 2

Одним из решений является добавить android:padding="@null" к кнопке в вашем XML. Это будет отменять любые существующие дополнения.

Существует также проблема, с которой я столкнулся, когда кнопка не будет уменьшаться меньше, чем заполнение, определенное в стиле кнопки по умолчанию. Я выделил это в моем собственном вопросе некоторое время назад но еще не получил ответа, который разрешает его еще.

Ответ 3

wrap_content не будет уменьшать кнопку, меньшую фона. Если вы уже используете девять патчей для фона, уменьшите размер областей до наименьшего из них. Если нет градиента, то вам действительно нужно примерно два пикселя для определения растяжимых областей, а затем убедитесь, что центральная область настолько мала, насколько это может быть. Используйте padding (правая и нижняя строки на девятикратном), чтобы выделить дополнение.

Если вы используете рисованное изображение (а не 9-патч или xml-drawable), сделайте его девяти патчей, доступных

Если вы не хотите решать проблему на изображении, вам нужно будет установить layout_height на фиксированное значение, чтобы заставить изображение сжиматься (т.е. не использовать wrap_content)

Ответ 4

Фон добавляет нежелательное дополнение

Ответ 5

Изменение фона не сработало, а padding = "@null".

Я закончил использование TextView, потому что моя кнопка была достаточно простой, чтобы этого было достаточно:

<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Join"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:padding="5dp"
        android:textSize="@dimen/xsmall_text_size"
        android:textColor="@drawable/button_text_selector"
        android:background="@color/turquoise"
        android:textStyle="bold"
        android:onClick="buttonOnClick"
        android:clickable="true"/>