如何处理我的活动布局长文本,我不知道它有多长?
我在textview中有这个文本,当它太长时,它会覆盖我的按钮。
答案 0 :(得分:3)
您在谈论Textview还是按钮?如果它是Textview,您可以使用如下的marque textview。它将自动滚动,以便显示所有文本
<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:ellipsize="marquee"
android:lines="1"
android:fadingEdge="horizontal"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:text="Your Looooooooooooooooooooooooooooooooooooooooong text!"
android:textColor="#000"
android:textSize="15dp" />
并在您的代码中
textview.setSelected(true);
textview.setEllipsize(TruncateAt.MARQUEE);
textview.setHorizontallyScrolling(true);
textview.setSingleLine(true);
textview.setLines(1);
如果你想要一个可扩展的Textview,可以这样做。它有一个按钮来展开/折叠textview。
在xml中,
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<RelativeLayout
android:id="@+id/relativeLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="sdfsdfsdfsfasfdsfgdfgdfsgsdfgsdfgsdfgsdgsdgdsgdsgsdfgdsgdsfgsdfgsdgsdfgsdfgdsfgsdgdsgfsdgfsdgsdfgdsgdsfgdsfgdsfgsdghjghjghjghjghjfg"
android:textAppearance="?android:attr/textAppearanceMedium" />
</RelativeLayout>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/relativeLayout1"
android:text="Button" />
</RelativeLayout>
并在代码中
boolean checkflag = true;// declare it as public
final RelativeLayout rl=(RelativeLayout)findViewById(R.id.relativeLayout1);
Button b=(Button)findViewById(R.id.button1);
final TextView text=(TextView)findViewById(R.id.textView1);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if(checkflag==true)
{
text.setSingleLine(true);
checkflag=false;
}
else
{
text.setSingleLine(false);
checkflag=true;
}
}
});