background drawable没有拉伸文本视图宽度

时间:2012-06-25 13:27:51

标签: android tablelayout

问题是:文本视图边框小于包含“Looooooong Teeeeext”的列中的单元格大小

enter image description here

我使用这个背景drawable

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
   <solid android:color="#ffffff" />
   <stroke android:width="1dip" android:color="#1e11d5"/>
</shape>

和表格的布局

<LinearLayout android:id="@+id/ll_country"
        android:layout_height="fill_parent" android:layout_width="fill_parent">
        <ScrollView android:id="@+id/ScrollView11"
            android:layout_width="fill_parent" android:layout_height="fill_parent"
            android:fillViewport="true">
            <HorizontalScrollView
                android:layout_width="fill_parent" android:layout_height="fill_parent"
                 >
            <LinearLayout 
                android:id="@+id/layout_table"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content" android:layout_margin="5dip">
                <!-- <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
                    android:layout_width="fill_parent" android:layout_height="fill_parent"
                    android:stretchColumns="0,1" android:id="@+id/country_table">
                </TableLayout> -->
            </LinearLayout>
            </HorizontalScrollView>
        </ScrollView>
    </LinearLayout>

这是生成表格的代码

for (int current = 0; current < 100 ; current++) {
            row = new TableRow(this);

            TextView t;
            for(int i =0 ; i < 20 ; i++){
                t = new TextView(this);
                t.setTextSize(20);
                t.setText(" text "+i+" ");
                t.setBackgroundDrawable(border);
                if((i== 4) && (current == 5)){
                    t.setText("  looooooong teeeeext  ");
                }
                //t.setWidth(20);
                t.setTextColor(Color.BLACK);
                row.addView(t,LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT);
                t.setBackgroundDrawable(border);
            }

            table.addView(row, new TableLayout.LayoutParams(
                    LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

        }

layout_table.addView(table, new TableLayout.LayoutParams(
                LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

1 个答案:

答案 0 :(得分:1)

您是否还可以展示如何生成border drawable?我建议使用

t.setBackgroundResource(R.drawable.border)

而不是

t.setBackgroundDrawable(border)

并查看是否可以解决问题。