मैं चैट ऐप बना रहा हूं। मैं चैट बबल के अलावा टाइमस्टैम्प रखना चाहता हूं। संदेश बाएं (प्राप्त के लिए) और दाएं (भेजे गए के लिए) गठबंधन किया जाएगा।प्रोग्रामेटिक रूप से RelativeLayout toRightOf को toLeftOf
तो, मैं toLeftOf
को toRightOf
में बदलने का एक तरीका ढूंढ रहा हूं। अभी के लिए, यह इस तरह दिखता है:
यहाँ प्रत्येक संदेश के लिए मेरी XML कोड है
<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>
मैं आसपास googling (मैं ArrayAdapter
कि इस संभाल है) और इस पाया है, लेकिन ऐसा नहीं करता कार्य:
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);
कोई समाधान? धन्यवाद
मुझे 'removeRule()' विधि नहीं मिल रही है। क्या वह अंतर्निहित है या हमें पहले बनाना होगा? – hrsetyono
क्षमा करें, यह सिर्फ [एपीआई 17 में जोड़ा गया था] (http://developer.android.com/reference/android/widget/RelativeLayout.LayoutParams.html#removeRule%28int%29) ... जो मदद नहीं करता है वर्तमान उपकरण लेकिन मुझे अभी भी विश्वास है कि एकाधिक लेआउट दृष्टिकोण सबसे अच्छा है। – Sam
रुको, क्या आपने दो अलग-अलग लेआउटपैम का उपयोग करने की कोशिश की है? और उन्हें 'tv.setLayoutParams (leftParams)' के साथ स्विच कर रहा है? – Sam