Ich mache Chat-App. Ich möchte neben der Chat-Blase auch einen Zeitstempel setzen. Die Nachrichten werden links (für empfangen) und rechts (für gesendet) ausgerichtet.Programmatically relateLayout toRightOf zu toLeftOf
Also, ich bin auf der Suche nach einer Möglichkeit, toLeftOf
zu toRightOf
zu ändern. Vorerst sieht es so aus:
Hier ist meine XML-Code für jede Nachricht (ich habe ArrayAdapter
, die damit umgehen)
<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>
ich googeln um und diese gefunden, aber nicht Arbeit:
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);
Irgendwelche Lösung? Dank
Ich kann nicht scheinen, die 'removeRule()' Methode zu finden. Ist das eingebaut oder müssen wir zuerst machen? – hrsetyono
Sorry, es war nur [in API 17 hinzugefügt] (http://developer.android.com/reference/android/widget/RelativeLayout.LayoutParams.html#removeRule%28int%29) ... Was nicht hilft aktuelle Geräte. Aber ich glaube immer noch, dass der Ansatz mit mehreren Layouts am besten ist. – Sam
Warte, hast du versucht, zwei verschiedene LayoutParams zu verwenden? Und wechseln sie mit 'tv.setLayoutParams (leftParams)'? – Sam