0

Android dev の hello, tablelayout のようなテーブル レイアウトがあります - うわー、今日サイトがダウンしています -.- 。1 つの tableRow に 2 つのテキストビューがあり、1 つは左側のサイトにある必要があります。

2番目は右側に固定する必要があります。しかし、画面よりも長い2つのテキストビューがあります。アプリケーションを起動すると、長いテキストビューの中央/最後しか表示されず、短いテキストビューは画面のすぐ後ろに表示されます。左画面側に短いテキストビューを固定するにはどうすればよいですか?

私の英語はとても下手ですが、私の質問の内容は明確だと思います。

これは最初の部分に過ぎません^^ xml ファイルはもっと長いです ここに xml ファイルがあります :

    <?xml version="1.0" encoding="utf-8"?>




<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ScrollView
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:isScrollContainer="true"
            android:overScrollMode="always"
            android:scrollbarAlwaysDrawVerticalTrack="true"
            android:scrollbarStyle="outsideInset"
            android:scrollbars="vertical" >


                    <TableLayout
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content" 
                    android:stretchColumns="1">


                        <TableRow
                                    android:id="@+id/tableRow0"
                                    android:layout_width="wrap_content"
                                    android:layout_height="wrap_content" >




                                    <TextView
                                        android:layout_column="1"
                                        android:padding="3dip"
                                        android:textSize="20dp"
                                        android:text="@string/tab1_text1" 
                                        android:textColor="#ffffff"
                                        android:layout_marginTop="5dp"
                                        />


                             </TableRow>       


                        <View
                            android:layout_height="2dip"
                            android:background="#FF909090" />

                                <TableRow
                                    android:id="@+id/tableRow1"
                                    android:layout_width="wrap_content"
                                    android:layout_height="wrap_content" >




                                    <TextView
                                        android:layout_column="1"
                                        android:padding="3dip"
                                        android:text="@string/TV_1_1" android:textColor="#ffffff"/>



                                    <TextView
                                        android:id="@+id/in1_1"
                                        android:gravity="right"
                                        android:padding="3dip"
                                        android:text="TEXT2" android:textColor="#ffffff"/>

                                </TableRow>


                                <TableRow
                                    android:id="@+id/tableRow2"
                                    android:layout_width="wrap_content"
                                    android:layout_height="wrap_content" >



                                    <TextView
                                        android:layout_column="1"
                                        android:padding="3dip"
                                        android:text="@string/TV_1_2" android:textColor="#ffffff"/>




                                    <TextView
                                        android:id="@+id/in1_2"
                                        android:gravity="right"
                                        android:padding="3dip"
                                        android:text="TEXT2" android:textColor="#ffffff"/>

                                </TableRow>

                                <TableRow
                                    android:id="@+id/tableRow3"
                                    android:layout_width="wrap_content"
                                    android:layout_height="wrap_content" >




                                    <TextView
                                        android:layout_column="1"
                                        android:padding="3dip"
                                        android:text="@string/TV_1_3" android:textColor="#ffffff"/>


                                    <TextView
                                        android:id="@+id/in1_3"
                                        android:gravity="right"
                                        android:padding="3dip"
                                        android:text="TEXT2" 
                                    android:textColor="#ffffff"
                                    android:singleLine="true" 
                                        android:ellipsize="marquee"
                                        android:marqueeRepeatLimit ="marquee_forever"
                                        android:focusable="true"
                                        android:focusableInTouchMode="true" 
                                        android:scrollHorizontally="true"
                                        android:layout_width="wrap_content" 
                                        android:layout_height="wrap_content"
                                    />

                                </TableRow>
4

2 に答える 2

0

あなたの質問は理解するのが少し難しかったですが、コメントのイラストを見ると、TextViews に重みを付ける必要があると思います。以下の例を見てください。

注: TableLayout サンプル コードで示したように、これは左の列を引き伸ばしません。

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
             android:layout_width="fill_parent"
             android:layout_height="wrap_content">

    <TableRow>
        <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:singleLine="true"
                android:ellipsize="marquee"
                android:padding="3dp"
                android:text="Hello layout_weight" />

        <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:singleLine="true"
                android:padding="3dp"
                android:gravity="right"
                android:scrollHorizontally="true"
                android:text="Row 1, Col 1" />
    </TableRow>

    <TableRow>
        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:singleLine="true"
            android:ellipsize="marquee"
            android:padding="3dp"
            android:text="Some long text in your left column, taking half the screen width"
        />

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:padding="3dp"
            android:text="This is the long scrolling text in your right column."
            android:singleLine="true"
            android:ellipsize="marquee"
            android:marqueeRepeatLimit="marquee_forever"
            android:focusable="true"
            android:focusableInTouchMode="true"
            android:scrollHorizontally="true"
        />

    </TableRow>
</TableLayout>
于 2012-06-26T21:18:31.877 に答える
0

あなたはあなたの問題を解決する私のコメントを無視したので...

<ScrollView>
    <TextView /> <--- The one with really long text
</ScrollView>

コメントで言ったように、膨大なテキストを含む TextView を ScrollView オブジェクトでカプセル化し、Textview を配置したのと同じ方法で ScrollView を配置すると、問題が解決します。

于 2012-06-26T20:34:17.470 に答える