6

私はこのようなものを取得しようとしています:http://img202.imageshack.us/img202/552/layoutoy.png。私はこれをリストアイテムとして使用しています(技術的にはExpandableListViewのグループビューとして)。

XMLファイルは次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="?android:attr/listPreferredItemHeight">

    <TextView
        android:id="@+id/list_item_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ellipsize="end" />

    <Button
        android:id="@+id/list_item_button"
        android:text="Click me!"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_toRightOf="@id/list_item_text" />

</RelativeLayout>

しかし、これは機能しません。ボタンはその内容を折り返すのではなく、使用可能なすべての水平方向のスペースを使用します。TextViewその内容をラップしますが、私がやりたいのは、ボタンと重なるときに切り落とすことです。

つまり、テキストビューのテキストの量に関係なく、すべてのボタンの幅を同じにする必要があります。これは可能ですか?

4

2 に答える 2

5

逆にやってみるべきだと思います。TextViewをボタンの左側に配置します。このようにして、Textviewがボタンと重ならないようにします。行の終わりで切り取りたい場合は、1行に制限する必要があります。現時点では、残りのテキストを次の行に移動するだけです。

これでうまくいくはずです:

<Button
    android:id="@+id/list_item_button"
    android:text="Click me!"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"/>

<TextView
    android:id="@+id/list_item_text"
    android:text="veryveryveryveryveryveryveryveryveryverylong"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toLeftOf="@id/list_item_button"
    android:ellipsize="end" />

</RelativeLayout>
于 2010-04-27T11:53:54.937 に答える
4

上記のメソッドを(RelativeLayoutを使用して)試す前に、LinearLayoutを使用する必要があります。重みは正しく設定する必要があります。空のスペースを占める必要がある要素の重みは1で、幅はfill_parentに設定する必要があります。最小サイズを維持する必要がある要素は、重みが0で幅が0である必要があります。 wrap_content。

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="?android:attr/listPreferredItemHeight">
<TextView
    android:id="@+id/list_item_text"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight=1
    android:ellipsize="end" />

<Button
    android:id="@+id/list_item_button"
    android:text="Click me!"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight=0/>

</LinearLayout>
于 2011-05-27T06:14:56.467 に答える