2

iphonesmsのようなインターフェースを実装したい:

実行する方法

これで、カスタムChatAdapterを使用したチャットリストビューが表示され、着信メッセージと発信メッセージがさまざまなレイアウトから膨らみます。

今後のレイアウト:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="right"
    android:background="@drawable/question_bubble"
    android:paddingBottom="10dp"
    android:paddingLeft="20dp"
    android:paddingRight="27dp"
    android:paddingTop="10dp"
    android:textColor="@color/BlackColor"
    android:textSize="18sp" />

着信レイアウト:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="left"
    android:autoLink="all"
    android:background="@drawable/answer_bubble"
    android:paddingLeft="27dp"
    android:paddingRight="20dp"
    android:paddingTop="10dp"
    android:paddingBottom="10dp"    
    android:textColor="@color/BlackColor"
    android:textSize="18sp"/>

「layout_gravity」を使用していますが、リストビュー内では機能しません。結果:

私のインターフェース

質問メッセージを右側に揃えるにはどうすればよいですか?

4

4 に答える 4

8

およびを持つアイテム レイアウト (たとえば a LinearLayout) にラッパー レイアウトを追加します。これにより、内側の/が正しい位置に調整されます。layout_width="match_parent"gravitiy="left"/"right"LayoutTextView

一般にwrap_content、 内のアイテムには使用しないことを強くお勧めしますListView。これにより、ListViewonMeasureメソッドが繰り返し呼び出され、アプリの速度が低下します。

于 2012-05-31T10:51:45.810 に答える
1
You can try this one:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    **android:layout_width="fill_parent"**
    android:layout_height="wrap_content"
    **android:gravity="right"**
于 2012-05-31T10:59:59.720 に答える
1

私は現時点でもこの問題に取り組んでいます。ここに記載されている提案で動作させることができませんでした。私にとっては、次を使用してのみ機能し、アダプターのメソッドで標準レイアウトを膨らませた後linearlayout.setGravity(Gravity.RIGHT);にプログラムで機能しました。これらの linearlayout の幅は、幅を持つlinearlayout の子です。また、 の場合だけでなく、を介してビューが要求されるたびに、これを行うことを忘れないでください。setGravity(Gravity.LEFT);getViewwrap_contentmatch_parentgetViewconvertView==null

于 2013-09-07T18:11:12.990 に答える