2015-09-17 4 views
-2

Я пытаюсь дать две кнопки одинакового размера в строке. Я использую следующий код:Как дать две кнопки одного размера в строке?

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/scrollView1" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 
    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" > 
     <TableLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" > 
      <TableRow android:id="@+id/tableRow5" > 
       <Button 
        android:id="@+id/btn_pre" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout_span="1" 
        android:text="@string/pre" /> 
       <Button 
        android:id="@+id/btn_next" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout_span="1" 
        android:text="@string/next" /> 
      </TableRow> 
     </TableLayout> 
    </LinearLayout> 
</ScrollView> 

Где моя ошибка? Пожалуйста посоветуй.

+1

Вы пытались использовать вес? – freddieptf

+0

Спасибо, решено – programmer138200

ответ

2

Я думаю, вы должны использовать LinearLayout вместо tableLayout. и добавить

android:layout_weight="1" 

пропорции для кнопок.

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/scrollView1" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 
    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" > 
     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" > 
       <Button 
        android:id="@+id/btn_pre" 
        android:layout_weight="1" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout_span="1" 
        android:text="@string/pre" /> 
       <Button 
        android:id="@+id/btn_next" 
        android:layout_weight="1" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout_span="1" 
        android:text="@string/next" /> 

     </LinearLayout> 
    </LinearLayout> 
</ScrollView> 
+0

ОК. Это правильно – programmer138200

2

Вы все еще можете использовать TableRow как это дочерний класс LinearLayout в:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/scrollView1" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 
    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" > 
     <TableLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" > 
      <TableRow android:id="@+id/tableRow5" > 
       <Button 
        android:id="@+id/btn_pre" 
        android:layout_width="0dp" 
        android:weight="1" 
        android:layout_height="wrap_content" 
        android:layout_span="1" 
        android:text="@string/pre" /> 
       <Button 
        android:id="@+id/btn_next" 
        android:layout_width="0dp" 
        android:weight="1" 
        android:layout_height="wrap_content" 
        android:layout_span="1" 
        android:text="@string/next" /> 
      </TableRow> 
     </TableLayout> 
    </LinearLayout> 
</ScrollView> 
2

Если вы хотите только две кнопки в вашем ряду, вам не нужно ScrollView, TableLayout или TableRow.

Просто горизонтальный LinearLayout с двумя Button «с, что layout_weight атрибут установлены до 0,50, а это означает, чтобы занять 50% пространства (для layout_weight на работу, вы должны установить layout_width в 0dp).

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

    <Button 
     android:id="@+id/btn_pre" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.50" 
     android:text="@string/pre" /> 
    <Button 
     android:id="@+id/btn_next" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.50" 
     android:text="@string/next" /> 
</LinearLayout> 
1

Также лучший способ использовать match_parent вместо fill_parent, потому что, как говорится в Android документации:

FILL_PARENT (переименован MATCH_PARENT в уровне API 8 и выше), что означает, что мнение хочет (минус заполнение)

see more in android documentation.