1

私のアプリでは、送信メッセージが左余白に配置され、受信メッセージが右に配置される SMS メッセージング アプリケーションの会話ビューを模倣しようとしています。カスタムRelativeLayoutを使用して左/右の配置を実現しています。TextViewカスタムのメソッドを呼び出して、実行時に s を動的に追加していますRelativeLayout

私が抱えている問題はTextView、最初の s に続く s を追加しているとき、それらが垂直に積み重ねられる (y を増やす) のではなく、(同じ x、y で) 重ねて配置されることです。

を追加する私のコードは次のTextViewとおりです。

TextView txt = new TextView(mContext);
RelativeLayout.LayoutParams params =
    new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
                                    LayoutParams.WRAP_CONTENT);
params.addRule(sent ? ALIGN_PARENT_LEFT : ALIGN_PARENT_RIGHT);  

// make sure this message is positioned below the last one
if (getChildCount() > 0) {
    params.addRule(BELOW, getChildAt(getChildCount() - 1).getId());
}

txt.setLayoutParams(params);
txt.setText(msg);

addView(txt);

私の習慣RelativeViewは次のように定義されています。

<com.foo.bar.ConversationLayout
        android:id="@+id/loConvo"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"/>

どんな助けでも大歓迎です。

ありがとう!

4

1 に答える 1