0

私は自分のレイアウトにこの種の線を構築しようとしています:

「合計......................1000」

ネットワークから受け取るものに応じて「1000」を変更する必要があります。その結果、「.........」の幅を変更する必要があります。「合計」という言葉は、単なる最終的なTextViewです。レイアウトでそれを実装する方法は?電話が横向きに変わるときは「.....」(ドット)を長くする必要があり、実装方法がわかりません。

つまり、TextView "Total"、TextView "...."(ドット)、TextView "1000"の3つの部分があり、1から無限大までの任意のナンバーにすることができます。画面のサイズに応じて、必須の「合計」と「1000」を「.....」と組み合わせて表示するために、それらを実装するにはどうすればよいですか?

次のxmlはそれを行いません。

<RelativeLayout 
                android:id="@+id/statistic_layout"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/statistic_separator"
                android:orientation="horizontal"
                android:padding="15dp">


               <TextView android:id="@+id/published_recepies"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content" 
                        android:textStyle="bold"
                        android:textSize="18dp"
                        android:layout_alignParentLeft="true"
                        android:textColor="@color/dark_orange"
                        android:text="Total"/>

               <TextView android:id="@+id/dots"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content" 
                        android:textSize="18dp"
                        android:layout_toRightOf="@+id/published_recepies"
                        android:textColor="@color/dark_orange"
                        android:text="@string/dots"/>

               <TextView android:id="@+id/published_recepies_data"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content" 
                        android:textSize="18dp"
                        android:layout_alignParentRight="true"
                        android:textColor="@color/dark_orange"
                        android:text="323"/>           

           </RelativeLayout>
4

3 に答える 3

1

重み属性を試してみる必要があります:以下のスニペットを試して、以下のコードを使用し、要件に従って設計してください:

<?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="horizontal" >

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    android:background="#ffffff" >
</LinearLayout>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    android:background="#ffffeabc" >
</LinearLayout>

 <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    android:background="#ffffedef" >
</LinearLayout>

</LinearLayout>
于 2012-07-03T11:56:49.457 に答える
1

これを試して、、

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@android:color/white" >

    <TextView
        android:id="@+id/text"
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center"
        android:background="@android:color/white"
        android:singleLine="true"
        android:text="......................................................................................................................................................................"
        android:textColor="#000000"
        android:textSize="18dip" />

    <TextView
        android:id="@+id/text2"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="left"
        android:background="@android:color/white"
        android:text="Total"
        android:textColor="#000000"
        android:textSize="18dip" />

    <TextView
        android:id="@+id/text3"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="right"
        android:background="@android:color/white"
        android:text="1000"
        android:textColor="#000000"
        android:textSize="18dip" />

</FrameLayout>

私のコードの2つの小さな問題、

1. You need to write so many dots hardcoded in layout xml file.
2. As sometimes there is a some little portion of dots cuts on both side.
于 2012-07-03T12:02:24.297 に答える
0

LinearLayout等しいlayout_weightsのオブジェクトを持つ水平はどうですか?「合計」はwrap_content幅、「......」は、、match_parent「1000」はwrap_content。「合計」を左に、「1000」を右に揃えると、「.....」が他の2つの間の残りのスペースを埋めます。ただし、これは、「....」文字列の長さを200ドットにするなど、ややばかげたことをした場合にのみ機能します。このように、一部のドットは表示されず、画面からはみ出しますが、少なくとも「合計」から「1000」までの間に必要なすべてのドットが表示されます。どう思いますか?

これを行うために私が考えることができる他の唯一の「より複雑な」方法は、向きを切り替えるか、数を増減するたびに、ピクセル単位で画面の幅を見つけ、「合計」という単語の幅と各桁を計算することですピクセル単位の数の、幅からそれを引き、それをドットが占めるピクセル数で割ります。その数は、「....」文字列に入れるドットの数になります。

于 2012-07-03T11:47:02.777 に答える