我目前正在尝试学习Android。几天来一直在阅读教程和手册。 我陷入了布局问题。
我正在从网页上删除内容并将其显示给用户。这是我的应用程序的工作。
我的布局如下:
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" android:padding="5px">
<TextView
android:id="@+id/tvOutput"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_marginTop="5dp">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TableLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="0" android:id="@+id/tblOutput">
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</TableRow>
<TableRow
android:id="@+id/tableRow2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</TableRow>
<TableRow
android:id="@+id/tableRow3"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</TableRow>
<TableRow
android:id="@+id/tableRow4"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</TableRow>
<TableRow
android:id="@+id/tableRow5"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</TableRow>
<TableRow
android:id="@+id/tableRow6"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</TableRow>
<TableRow
android:id="@+id/tableRow7"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</TableRow>
<TableRow
android:id="@+id/tableRow8"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</TableRow>
<TableRow
android:id="@+id/tableRow9"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</TableRow>
<TableRow
android:id="@+id/tableRow10"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</TableRow>
<TableRow
android:id="@+id/tableRow11"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</TableRow>
</TableLayout>
<Button
android:id="@+id/btnBack"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/lblBack" android:layout_marginTop="10dip"/>
<Button
android:id="@+id/btnSendSMS"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:text="@string/lblSendSMS" />
</LinearLayout>
</ScrollView>
通过代码,我将遍历TableRows并分别添加两个TextView。以下是它的一个示例:
for(i=1;i<=11;i++){
TextView tv1 = new TextView(getApplicationContext());
TextView tv2 = new TextView(getApplicationContext());
//get values and store it in strValue1 & strValue2
//....
tv1.setText(strValue1); //a long text
tv2.setText(strValue2); //would always be a 3 letter value
//tv1.setEllipsize(TruncateAt.MARQUEE);
//tv1.setMarqueeRepeatLimit(1);
tv1.setSingleLine(true);
tv1.setEllipsize(TruncateAt.END);
tv1.setGravity(Gravity.LEFT);
tr = (TableRow) findViewById( getResources().getIdentifier("tableRow"+i, "id", getPackageName()));
tr.addView(tv1);
tr.addView(tv2);
}
问题是,每个TableRow上的第一个TextView的setEllipsize()没有做任何事情。它只显示第一个TextView的文本(长文本溢出宽度),甚至没有显示TextView2。
当我在现有TextView上尝试setEllipsize()和setSingleLine()时(我的布局中的第一个TextView - 你可以从上面的XML看到,它在Table Layout之上),它运行正常。
我出错的任何想法?还是有什么建议吗?
提前致谢:)
答案 0 :(得分:0)
您需要使用任何一种方法为TextView设置固定高度。设置行数或仅设置TextView布局的高度。如果您不这样做,因为文本视图将wrap_content作为高度,它将调整大小并显示所有文本。
首先修复textview的大小,然后setellipsize()