2014-02-08 32 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