2

编辑:我比以前更进了一步

我一直在尝试获得一个简单的 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。
  • 将左列更改layout_width为 fill_parent(将右列推离屏幕)或 wrap_content(折叠左列)

有什么想法吗?

4

1 回答 1

4

有什么想法吗?

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

其次,您能否使用右侧列的普通小部件而不是您的自定义View类来使其工作?您的问题可能是由于您的习惯造成的View——我首先要使用普通小部件以您想要的方式工作。

于 2010-02-28T16:42:25.570 回答