当向表中添加多行时,Horizo​​ntalScrollView中的TableLayout会添加填充

时间:2013-12-19 21:57:24

标签: android android-tablelayout

我在Horizo​​ntalScrollView中有一个TableLayout。当我添加单行图像时,图像是并排的,没有额外的填充。

但是当我添加另一行并且图像缩小时,TableLayout会在每个单元格周围水平创建额外的填充,但不会垂直。 这是我的代码:

    TableLayout grid = (TableLayout) deckBuilder.findViewById(R.id.grid);

    for (int j = 0; j < 3; ++j) {
        TableRow testRow = new TableRow(this);
        \\Each row has the same weight
        testRow.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT, TableLayout.LayoutParams.MATCH_PARENT, 1f));
        for (int i = 0; i < 20; ++i) {
            ImageView testImage = new ImageView(this);
            testImage.setImageResource(R.test_image);
            testRow.addView(testImage);
        }
        grid.addView(testRow);
    }

这是我的xml:

    <HorizontalScrollView
        android:id="@+id/horizontalscroll"
        android:layout_width="wrap_content"
        android:layout_height="1dip" 
        android:scrollbars="none"
        android:overScrollMode="never">

       <TableLayout 
            android:id="@+id/grid"
            android:layout_width="wrap_content"
            android:layout_height="match_parent" >
       </TableLayout>
    </HorizontalScrollView>

1 个答案:

答案 0 :(得分:0)

编辑:

抱歉误读了这段代码。

解决方案:

将图像视图的宽度/高度设置为wrap_content。你可以通过

来做到这一点

LayoutParams对象:

http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html

请参阅此问题以获取示例:

Show ImageView programmatically

//ImageView Setup
ImageView imageView = new ImageView(this);
//setting image resource
imageView.setImageResource(R.drawable.play);
//setting image position
imageView.setLayoutParams(new LayoutParams(
LayoutParams.MATCH_PARENT,
LayoutParams.WRAP_CONTENT));

请看这里的文档:

http://developer.android.com/reference/android/widget/ImageView.html

具体看scaleType:

http://developer.android.com/reference/android/widget/ImageView.ScaleType.html

我认为其中一个选项应该解决这个问题(也许...... fitXY?)