私のアプリでは、送信メッセージが左余白に配置され、受信メッセージが右に配置される 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"/>
どんな助けでも大歓迎です。
ありがとう!