Android TableLayout问题:获取固定宽度的右列?

时间:2010-02-28 15:45:10

标签: android layout scrollview tablelayout android-linearlayout

编辑:我比以前更进一步

我一直试图让一个简单的2列TableLayout进入我左栏中的LinearLayout,我动态添加填充水平空间的元素,除了固定的100px右列。

如果LinearLayout包含多个元素,那么到目前为止,这对我有用。如果它只包含一个元素,则右列将被推出屏幕右侧

 <ScrollView android:layout_width="fill_parent"
             android:layout_height="fill_parent"
             xmlns:android="http://schemas.android.com/apk/res/android"
             android:id="@layout/main">
  <TableLayout android:layout_width="fill_parent"
               android:layout_height="fill_parent">
     <TableRow>
       <LinearLayout android:id="@+id/LinearLayout01"
                         android:layout_width="fill_parent"
                         android:layout_height="fill_parent" 
                         android:layout_weight="0.4"
                         android:orientation="vertical"></LinearLayout>
    <com.epaga.ArcDrawableView 
                         android:layout_width="fill_parent" 
                         android:layout_height="fill_parent" 
                         android:gravity="right" android:layout_weight="0.1" >
       </com.epaga.ArcDrawableView>
     </TableRow>
   </TableLayout>
 </ScrollView>

我尝试过的事情:

  • 将可绘制视图(应该是固定列)更改为android:layout_width="150px"
  • stretchcolumns设置更改为0.
  • 将左列“{{1}”更改为fill_parent(将右栏推离屏幕)或wrap_content(折叠左栏)

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

  

有什么想法吗?

首先,你为什么要使用TableLayout?为什么不使用嵌套的LinearLayouts?您已经决定不关心TableLayout的主要用途 - 自动计算列大小 - 因为您正试图自己修改列大小。

其次,您是否可以使用普通小部件为正确的列工作,而不是使用自定义View类?您的问题可能是由于您的自定义View - 我首先要使用普通小部件以您想要的方式运行。