私は、RelativeLayout内にLinearLayoutを配置し、値に応じて右または左に配置したい(単純なチャットです。私が話している人)、これはレイアウトコードです:あなたはandroid:layout_alignParentRight="true"
プロパティが設定されて見ることができるように右に配置する/左に配置するプログラムでは、RelativeLayout内のLinearLayout
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/layout_chat_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="@dimen/chat_margin_default"
android:paddingRight="@dimen/chat_margin_default"
android:layout_alignParentRight="true"
android:background="@drawable/textview_rounded_corners_receiver"
android:orientation="vertical">
<TextView
android:id="@+id/textview_chat_message_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textIsSelectable="true"
android:autoLink="all"
android:text="Se"/>
<TextView
android:id="@+id/textview_chat_message_date_info"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textIsSelectable="false"
android:textAlignment="textEnd"
android:text="10:32"
android:maxLines="1"
android:textSize="@dimen/chat_message_text_font_size"/>
</LinearLayout>
</RelativeLayout>
。
問題は、私は右または左にそれらを設定するLayoutParamsへのアクセスを取得しようとすると、プログラムで、それはキャスト例外をスローし、次のとおりです。
java.lang.ClassCastException: android.widget.RelativeLayout$LayoutParams cannot be cast to android.widget.LinearLayout$LayoutParams
は、これは私がLayoutParamsにアクセスする方法です。
mChatMessageContainer = (View) v.findViewById(R.id.layout_chat_message);
最近ありませんでした:mChatMessageContainerがある
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) holder.mChatMessageContainer.getLayoutParams();
params.removeRule(RelativeLayout.ALIGN_PARENT_LEFT);
params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
LinearLayoutの代わりにTextLayoutを使用していましたが、コードが正常に動作していましたが、現在は必要です。
ドキュメントを読んで、私は親レイアウトのparamsにアクセスしていたと思います。そのため、私はそれを相対パスにキャストしています。
どのようにして整列をTHAT linearLayoutにプログラムで設定できますか?
をしかし'LinearLayout.LayoutParams'doesは私が必要'RelativeLayout.ALIGN_PARENT_RIGHT'propertyを追加するための追加ルールを持っていません。もちろん、相対レイアウトのプロパティを追加することはできません。 –
親ビューをRelativeLayout – sasikumar
のように変更します。親ビューは既に相対レイアウトです。 –