Размер кнопки в таблице не правильный.(Android) - PullRequest
1 голос
/ 03 декабря 2011

Я пишу приложение для Android.Вот его макет XML:

 <ScrollView android:id="@+id/ScrollView01"
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent"  
        android:layout_gravity="left|top|bottom|right"
        android:layout_marginTop="80dip"
        android:layout_marginLeft="0dip"
        android:layout_marginRight="0dip"
        android:layout_marginBottom="60dip"

>

     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/centerlayout"
    android:orientation="vertical"
    android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:layout_gravity="left|right|top|bottom"
        android:layout_marginRight="20dip"
        android:layout_marginLeft="10dip"
        android:layout_marginBottom="120dip"    >

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



    <TableRow>
         <Button android:text="Button" 
             android:layout_column="0"
            android:id="@+id/bookmarkbutton" 
            android:layout_width="230dip" 
            android:layout_height="30dip" 

            android:background="@drawable/red_btn"
            android:padding="14dp" 
           ></Button>


    </TableRow>


    </TableLayout>

   </LinearLayout>



</ScrollView>

, и если я его запусту, он отобразит следующий экран: enter image description here

Но когда я добавлю android: layout_gravity = "left" к "Кнопка ", размер кнопки уменьшается и показывает: enter image description here

Обратите внимание, если я изменяю ширину кнопки на Android: layout_width =" 30dip ", она показывает маленькие кнопки, enter image description here

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

Наконец, если я добавлю к нему новое текстовое представление, через

ScrollView android:id="@+id/ScrollView01"
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent"  
        android:layout_gravity="left|top|bottom|right"
        android:layout_marginTop="80dip"
        android:layout_marginLeft="0dip"
        android:layout_marginRight="0dip"
        android:layout_marginBottom="60dip"



>

         <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/centerlayout"
        android:orientation="vertical"
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:layout_gravity="left|right|top|bottom"
        android:layout_marginRight="20dip"
        android:layout_marginLeft="10dip"
        android:layout_marginBottom="120dip"


        >

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



  <TableRow>
         <TextView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/subjecttext"
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"
        android:lineSpacingExtra="10dip"
        android:padding="14dp" 
        />    
        </TableRow>

    <TableRow>
         <Button android:text="Button" 
             android:layout_column="0"
            android:id="@+id/bookmarkbutton" 
            android:layout_width="20dip" 
            android:layout_height="30dip" 
            android:background="@drawable/black_btn"
            android:padding="14dp" 
           ></Button>


    </TableRow>





</TableLayout>

        </LinearLayout>



        </ScrollView>

Отображается следующее изображение, размер кнопки больше не изменяется.Подскажите, пожалуйста, что не так?

enter image description here

1 Ответ

1 голос
/ 03 декабря 2011

Попробуйте использовать LinearLayout вместо TableLayout.Вот ваш код с LinearLayout:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/ScrollView01" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:layout_gravity="left|top|bottom|right" 
    android:layout_marginTop="80dip" 
    android:layout_marginLeft="0dip" 
    android:layout_marginRight="0dip"
    android:layout_marginBottom="60dip">
    <LinearLayout android:id="@+id/centerlayout" 
                android:orientation="vertical" 
                android:layout_width="fill_parent" 
                android:layout_height="fill_parent"
                android:layout_gravity="left|right|top|bottom" 
                android:layout_marginRight="20dip" 
                android:layout_marginLeft="10dip" 
                android:layout_marginBottom="120dip">
        <TextView android:text="Very long text in textview" 
                android:textSize="20sp" android:id="@+id/subjecttext"
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content" 
                android:lineSpacingExtra="10dip" 
                android:padding="14dp" />
        <Button android:id="@+id/bookmarkbutton" 
                android:background="@drawable/red_btn" 
                android:text="Button" 
                android:padding="14dp" 
                android:layout_height="30dip"
                android:layout_width="20dip">
        </Button>
    </LinearLayout>
</ScrollView>

и снимок экрана:

enter image description here

Надеюсь, это поможет вам!.

Я действительно вижу, чтоваши кнопки на кнопке экрана обрезали текст.Это вторая проблема?

Ниже я прикрепил скриншот с кодом:

enter image description here

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/ScrollView01" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:layout_gravity="left|top|bottom|right" 
    android:layout_marginTop="80dip" 
    android:layout_marginLeft="0dip" 
    android:layout_marginRight="0dip"
    android:layout_marginBottom="60dip">
    <LinearLayout android:id="@+id/centerlayout" 
                android:orientation="vertical" 
                android:layout_width="fill_parent" 
                android:layout_height="fill_parent"
                android:layout_gravity="left|right|top|bottom" 
                android:layout_marginRight="20dip" 
                android:layout_marginLeft="10dip" 
                android:layout_marginBottom="120dip">
        <TextView android:text="Very long text in textview" 
                android:textSize="20sp" android:id="@+id/subjecttext"
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content" 
                android:lineSpacingExtra="10dip" 
                android:padding="14dp" />
        <Button android:text="Button" 
                android:background="@drawable/red_btn" 
                android:id="@+id/button1" 
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content"></Button>
    </LinearLayout>
</ScrollView>
...