我正在使用包含TableRows的TableLayout。 TableLayout:
<TableLayout
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:background="@drawable/window"
android:minWidth="256dp"
android:id="@+id/charStanceList"></TableLayout>
这些行是从这个xml文件中膨胀的:
<TableRow xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="None"
android:id="@+id/stanceHands"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/list_text" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="None"
android:textAppearance="?android:attr/textAppearanceMedium"
android:id="@+id/stances"
android:textColor="@color/list_text" />
</TableRow>
以下是用于创建行的代码:
public TableRow createTableRow(Context context) {
TableRow row =(TableRow) ((LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE )).inflate(R.layout.stance_list_row,null);
TextView hands=(TextView)row.findViewById(R.id.stanceHands);
hands.setText(RHand + LHand);
TextView stancesView =(TextView)row.findViewById(R.id.stances);
MovementMethod movementMethod = stancesView.getMovementMethod();
if ((movementMethod == null) || !(movementMethod instanceof LinkMovementMethod))
{
stancesView.setMovementMethod(LinkMovementMethod.getInstance());
}
SpannableString finalss=new SpannableString("");
for (Stance s : stances) {
SpannableString ss = new SpannableString(s.getName());
class StanceLink extends ClickableSpan{
Stance stance;
@Override
public void onClick(View view) {
Log.i("Clicked", "clicked on stance "+stance.getName()+" of ClassID "+stance.ClassID);
}
public void setStance(Stance st){
stance=st;
}
}
StanceLink link=new StanceLink();
link.setStance(s);
ss.setSpan(link, 0, s.getName().length(), Spannable.SPAN_EXCLUSIVE_INCLUSIVE );
finalss= new SpannableString(TextUtils.concat(TextUtils.concat(finalss,ss),"\n"));
}
stancesView.setText(finalss);
return row;
}
当字符串太宽时插入断行,但其中一部分将被隐藏(右侧)。在这张图片中使用的文字是:五本武术书 - ...... &#34;艺术 - &#34;似乎溢出,所以我们无法看到它。 以下是问题的屏幕截图
更改Ellipsize并不起作用。
答案 0 :(得分:0)
我修复了它,感谢android:shrinkColumns并将宽度更改为match_parent
tablelayout:
<TableLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/window"
android:minWidth="256dp"
android:id="@+id/charStanceList"
android:shrinkColumns="1"></TableLayout>
行
<TableRow xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="None"
android:id="@+id/stanceHands"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/list_text" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="None"
android:textAppearance="?android:attr/textAppearanceMedium"
android:id="@+id/stances"
android:textColor="@color/list_text" />
</TableRow>