0

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

<LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="5dp" 
      android:layout_gravity="center_vertical" > 

      <Button 
       android:id="@+id/mainCommentBtn" 
       android:layout_width="119dp" 
       android:layout_height="wrap_content" 
       android:layout_alignParentLeft="true" 
       android:clickable="true" 
       android:focusable="false" 
       android:focusableInTouchMode="false" 
       android:layout_weight="1" 
       android:text="@string/commentBtn" /> 

      <Button 
       android:id="@+id/mainProfileBtn" 
       android:layout_width="119dp" 
       android:layout_height="wrap_content" 
       android:clickable="true" 
       android:focusable="false" 
       android:focusableInTouchMode="false" 
       android:layout_weight="1" 
       android:layout_centerInParent="true" 
       android:text="@string/profileBtn" /> 

      <Button 
       android:id="@+id/mainDetailBtn" 
       android:layout_width="119dp" 
       android:clickable="true" 
       android:focusable="false" 
       android:focusableInTouchMode="false" 
       android:layout_weight="1" 
       android:layout_height="wrap_content" 
       android:layout_alignParentRight="true" 
       android:text="@string/shareBtn" /> 
     </LinearLayout> 

ответ

0

Замените ваш ресурс на это. Скопируйте отредактированные изменения

Обратите внимание, что ширина равна 0dp, потому что они используют вес. Использование Вес: 1. Чтобы использовать вес, вам необходимо установить weightSum в родительском. 2. Убедитесь, что ширина или высота установлены в 0 в соответствии с тем, как вы используете вес. (например, поскольку мы движемся с горизонтальной ориентацией, мы хотим использовать ширину «0dp», что позволяет весу контролировать ширину объекта. 3. Наконец, убедитесь, что вес всех объектов добавлен к весуSum.

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_gravity="center_vertical" 
android:layout_marginTop="5dp" 
android:orientation="horizontal" 
android:weightSum="3" > 

<Button 
    android:id="@+id/mainCommentBtn" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_weight="1" 
    android:clickable="true" 
    android:focusable="false" 
    android:focusableInTouchMode="false" 
    android:text="@string/commentBtn" /> 

<Button 
    android:id="@+id/mainProfileBtn" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_centerInParent="true" 
    android:layout_weight="1" 
    android:clickable="true" 
    android:focusable="false" 
    android:focusableInTouchMode="false" 
    android:text="@string/profileBtn" /> 

<Button 
    android:id="@+id/mainDetailBtn" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_alignParentRight="true" 
    android:layout_weight="1" 
    android:clickable="true" 
    android:focusable="false" 
    android:focusableInTouchMode="false" 
    android:text="@string/shareBtn" /> 

</LinearLayout> 
+0

Это будет приятно, если вы добавите некоторые пояснения к вашему ответу. –

+0

Там явно есть объяснение – Xjasz

+0

ах, gotcha. Извини, я виноват. –

0

вы должны указать ориентацию для LinearLayout.

Я предполагаю, что вы хотите использовать android:orientation="horizontal".

Тогда для того, чтобы сделать android:weight работу, вам нужно указать ширину каждая кнопка 0px, используя android:layout_width="0px" для каждой кнопки.

0
<Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentTop="true" 
    android:text="Button" /> 

Эти свойства xml имеют размер кнопки, чтобы заполнить экран как по вертикали, так и по горизонтали.

0

Вы можете создать макет с помощью веса макета, так что он будет автоматически заполнять экран в ландшафтном режиме также, как показано ниже:

<LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     android:weightSum="3" > 
     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Button 1" 
      android:layout_weight="1" /> 
     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Button 2" 
      android:layout_weight="1" /> 
     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Button 3" 
      android:layout_weight="1" /> 
    </LinearLayout> 
Смежные вопросы