2

どのくらいの長さかわからないアクティビティ レイアウトの長いテキストを処理するにはどうすればよいですか?

このテキストはテキストビューにあり、長すぎるとボタンに重なってしまいます。

4

1 に答える 1

3

TextviewまたはButtonについて話しているのですか?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);

展開可能なテキストビューが必要な場合は、次のようにします。テキストビューを展開/折りたたむボタンがあります。

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;
            }

        }
    });
于 2013-05-28T12:06:48.970 に答える