2014-02-08 61 views
0

我在5英寸的智能手機上開發了我的應用程序,現在我遇到了較小屏幕的問題。我在HTC Wildfire上測試了它,最後兩行沒有顯示。整個事情是一個6行4列的表格,每個字段都是一個按鈕。 所有的按鈕必須在一個屏幕上(不可滾動),並且按鈕應該在所有屏幕上看起來足夠大。在較小的屏幕上顯示所有的TableRows

我開發了一切使用DP,即使是因爲我不知道爲什麼我現在有這個問題。 這裏是我的xml:

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 

    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/bg" 
    tools:context=".MainActivity"> 


    <TableRow 
     android:id="@+id/tableRow1" 
     android:layout_width="wrap_content" 
     android:layout_height="22dp" > 

     <Button 
     android:id="@+id/button1" 
      android:layout_width="40dp" 
     android:layout_height="40dp" 
     android:background="@drawable/willi" 
     /> 

    <Button 
     android:id="@+id/button2" 
      android:layout_width="40dp" 
     android:layout_height="40dp" 
     android:layout_marginLeft="70dp" 


     android:background="@drawable/willi" 
     /> 


    <Button 
     android:id="@+id/button3" 
      android:layout_width="40dp" 
     android:layout_height="40dp" 
    android:layout_marginLeft="140dp" 
     android:background="@drawable/willi" 
/> 


    <Button 
     android:id="@+id/button4" 
      android:layout_width="40dp" 
     android:layout_height="40dp" 
    android:layout_marginLeft="210dp" 

     android:background="@drawable/willi" 
     /> 


    </TableRow> 


    <TableRow 
     android:id="@+id/tableRow2" 
     android:layout_width="wrap_content" 
     android:layout_height="22dp" 
     android:layout_marginTop="90dp"> 



     <Button 
     android:id="@+id/button5" 
      android:layout_width="40dp" 
     android:layout_height="40dp" 

     android:background="@drawable/willi" 
     /> 

    <Button 
     android:id="@+id/button6" 
      android:layout_width="40dp" 
     android:layout_height="40dp" 
     android:layout_marginLeft="70dp" 
     android:background="@drawable/willi" 
    /> 

    <Button 
     android:id="@+id/button7" 
      android:layout_width="40dp" 
     android:layout_height="40dp" 
     android:layout_marginLeft="140dp" 
     android:background="@drawable/willi" 
     /> 

    <Button 
     android:id="@+id/button8" 
      android:layout_width="40dp" 
     android:layout_height="40dp" 
     android:layout_marginLeft="210dp" 
     android:background="@drawable/willi" 
     /> 

     </TableRow> 
     <TableRow 
     android:id="@+id/tableRow3" 
     android:layout_width="wrap_content" 
     android:layout_height="22dp" 
     android:layout_marginTop="90dp" > 


     <Button 
     android:id="@+id/button9" 
      android:layout_width="40dp" 
     android:layout_height="40dp" 

     android:background="@drawable/willi" /> 
    <Button 

     android:id="@+id/button10" 
      android:layout_width="40dp" 
     android:layout_height="40dp" 
     android:layout_marginLeft="70dp" 
     android:background="@drawable/willi" /> 

    <Button 
     android:id="@+id/button11" 
      android:layout_width="40dp" 
     android:layout_height="40dp" 
     android:layout_marginLeft="140dp" 
     android:background="@drawable/willi" /> 

    <Button 
     android:id="@+id/button12" 
     android:layout_marginLeft="210dp" 
      android:layout_width="40dp" 
     android:layout_height="40dp" 

     android:background="@drawable/willi" /> 

    </TableRow> 



       <TableRow 
     android:id="@+id/tableRow4" 
     android:layout_width="wrap_content" 
     android:layout_height="22dp" 
     android:layout_marginTop="90dp" > 


     <Button 
     android:id="@+id/button13" 
      android:layout_width="40dp" 
     android:layout_height="40dp" 
     android:background="@drawable/willi" /> 
    <Button 

     android:id="@+id/button14" 
      android:layout_width="40dp" 
     android:layout_height="40dp" 
     android:layout_marginLeft="70dp" 
     android:background="@drawable/willi" /> 

    <Button 
     android:id="@+id/button15" 
      android:layout_width="40dp" 
     android:layout_height="40dp" 
     android:layout_marginLeft="140dp" 
     android:background="@drawable/willi" /> 

    <Button 
     android:id="@+id/button16" 
     android:layout_marginLeft="210dp" 
      android:layout_width="40dp" 
     android:layout_height="40dp" 

     android:background="@drawable/willi" /> 

    </TableRow> 

     <TableRow 
     android:id="@+id/tableRow5" 
     android:layout_width="50dp" 
     android:layout_height="22dp" 
     android:layout_marginTop="90dp" > 


     <Button 
     android:id="@+id/button17" 
      android:layout_width="40dp" 
     android:layout_height="40dp" 

     android:background="@drawable/willi" /> 
    <Button 

     android:id="@+id/button18" 
      android:layout_width="40dp" 
     android:layout_height="40dp" 
     android:layout_marginLeft="70dp" 
     android:background="@drawable/willi" /> 

    <Button 
     android:id="@+id/button19" 
      android:layout_width="40dp" 
     android:layout_height="40dp" 
     android:layout_marginLeft="140dp" 
     android:background="@drawable/willi" /> 

    <Button 
     android:id="@+id/button20" 
     android:layout_marginLeft="210dp" 
      android:layout_width="40dp" 
     android:layout_height="40dp" 
     android:background="@drawable/willi" /> 

    </TableRow> 

    <TableRow 
     android:id="@+id/tableRow6" 
     android:layout_width="wrap_content" 
     android:layout_height="22dp" 
     android:layout_marginTop="90dp" > 


     <Button 
     android:id="@+id/button21" 
      android:layout_width="40dp" 
     android:layout_height="40dp" 

     android:background="@drawable/willi" /> 
    <Button 

     android:id="@+id/button22" 
       android:layout_width="40dp" 
     android:layout_height="40dp" 
     android:layout_marginLeft="70dp" 
     android:background="@drawable/willi" /> 

    <Button 
     android:id="@+id/button23" 
      android:layout_width="40dp" 
     android:layout_height="40dp" 
     android:layout_marginLeft="140dp" 
     android:background="@drawable/willi" /> 

    <Button 
     android:id="@+id/button24" 
     android:layout_marginLeft="210dp" 
      android:layout_width="40dp" 
     android:layout_height="40dp" 

     android:background="@drawable/willi" /> 

    <TextView 
     android:id="@+id/tvPunktewaehrend" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:textStyle="bold" 
     android:layout_gravity="center_horizontal" 
     android:textColor="@color/white" 
     android:textSize="20sp" 
     android:text=" " /> 


    </TableRow> 

    </TableLayout> 

我在做什麼錯?

+0

不要使用任何數據庫或任何東西的寬度和高度..同一時間包裝也是危險的。將db中的所有高度替換爲所有按鈕的fill_parent – Amsheer

+0

? fill_parent到底做了什麼?如果我這樣做,按鈕將顯示爲大,因爲他們在我認爲的每個屏幕上?! – user896692

+0

當然是爲每個表格行設置fill_parent,然後將表格佈局高度設置爲match_parent,因此頁面爲所有屏幕設置。 – Amsheer

回答

1

如果您定位多個屏幕尺寸,則不能使用固定寬度。您需要使用TableLayout的列擴展功能動態調整TableRow中每個視圖的列寬。

+0

TableLayout的列伸展功能是什麼意思?我第一次使用它,你能舉個例子嗎? – user896692

+0

這是一個很好的例子:http://stackoverflow.com/questions/1666685/android-stretch-columns-evenly-in-a-tablelayout。 –

+0

這是不是layout_width和layout_weight屬性? – user896692