私はチャットアプリを作っています。私はチャットバブルの他にタイムスタンプを入れたい。メッセージは、左(受信用)と右(送信用)に整列されます。プログラムでRelativeLayoutをtoReftOfに変更する
toLeftOf
をtoRightOf
に変更する方法を探しています。私の周りグーグルとこれを見つけたのではなく、
ここでは、各メッセージのための私のXMLコードがあります(私はこれを処理ArrayAdapter
を持っている)
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/wrapper"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/bubble"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#ffffff" />
<TextView
android:id="@+id/timeStamp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toRightOf="@+id/bubble" />
</RelativeLayout>
:今のところ、それはこのようになります仕事:
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
if(isReceivedMessage){
params.addRule(RelativeLayout.RIGHT_OF, R.id.bubble);
}
else{
params.addRule(RelativeLayout.LEFT_OF, R.id.bubble);
}
timeStampTextView.setLayoutParams(params);
すべての解決策はありますか? toRightOf
用とtoLeftOf
のための1:ありがとう
私は 'removeRule()'メソッドを見つけることができません。それが組み込まれているのか、それとも最初に作る必要がありますか? – hrsetyono
申し訳ありません、それはちょうど[API 17で追加されました](http://developer.android.com/reference/android/widget/RelativeLayout.LayoutParams.html#removeRule%28int%29)...これは役に立たない現在のデバイス。しかし、私はまだ複数のレイアウトのアプローチが最良だと考えています。 – Sam
待って、2つの異なるLayoutParamsを使ってみましたか? 'tv.setLayoutParams(leftParams)'でそれらを切り替える? – Sam