动态添加视图并设置参数和规则无法正常工作(android)
Posted
技术标签:
【中文标题】动态添加视图并设置参数和规则无法正常工作(android)【英文标题】:Adding View dynamically and setting Parameters and rules is not working properly (android) 【发布时间】:2015-12-08 07:54:13 【问题描述】:我在我的 android 项目中遇到了问题。在这里,我有一个 imageButton ,单击它时,我必须膨胀一个布局文件并将其动态添加到相对布局中。添加视图工作正常。但问题是添加此子视图后,我需要将图像按钮移动到新子布局下方。但我的 imageButton 在子视图下膨胀,也许我缺少一些 LayoutParameters 和规则。
这是我的代码
private void addDestinationViews()
View destinationChildView = LayoutInflater.from(getActivity()).inflate(R.layout.destination_city_item, null);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.MATCH_PARENT,
RelativeLayout.LayoutParams.MATCH_PARENT);
params.addRule(RelativeLayout.ALIGN_PARENT_TOP);
params.addRule(RelativeLayout.ALIGN_TOP, R.id.add_destinationbutton);
destinationChildView.setLayoutParams(params);
mInflated_view_holder.addView(destinationChildView);
这是我要膨胀的布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_
android:padding="10dp">
<TextView
android:layout_
android:layout_
android:background="@drawable/add_destination_button_back"
android:text="afaf"
android:textSize="18sp"
android:paddingLeft="30dp"
android:padding="10dp"
android:gravity="start|center"/>
<ImageButton
android:id="@+id/cancle_destination_imagebutton"
android:layout_
android:layout_
android:background="@drawable/cross_place_icon"
android:scaleType="centerInside"
android:layout_alignParentRight="true"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"/>
这是承载膨胀布局的相对布局
<RelativeLayout
android:id="@+id/inflated_view_holder_three"
android:layout_
android:layout_
android:layout_below="@+id/child_counter_title"
android:layout_marginTop="15dp">
<ImageButton
android:id="@+id/add_destinationbutton"
android:layout_
android:layout_
android:src="@drawable/add_place_icon"
android:layout_alignParentRight="true"
android:layout_marginRight="5dp"
android:background="@drawable/add_destination_button_back"/>
</RelativeLayout>
P.S我忘了提到这个子视图将在 imageButton press 时添加。所以这里的代码需要是动态的。
【问题讨论】:
【参考方案1】:使用它来托管您的膨胀布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_>
<RelativeLayout
android:id="@+id/inflated_view_holder_three"
android:layout_
android:layout_
android:layout_marginTop="15dp">
</RelativeLayout>
<ImageButton
android:id="@+id/add_destinationbutton"
android:layout_
android:layout_
android:layout_alignParentRight="true"
android:layout_below="@+id/inflated_view_holder_three"
android:layout_marginRight="5dp"
android:src="@drawable/ic_launcher" />
<!--android:background="@drawable/add_destination_button_back"-->
</RelativeLayout>
如有任何问题请告诉我
【讨论】:
谢谢伙计,你救救我。但我之前提到的另一件事不起作用。就像在膨胀第一个视图之后,如果用户按下图像按钮,新视图需要在另一个视图上膨胀。可能需要一些布局参数和布局规则运行时,但我不知道应该是什么。 @桑迪以上是关于动态添加视图并设置参数和规则无法正常工作(android)的主要内容,如果未能解决你的问题,请参考以下文章
xcodebuild 命令无法与动态可可触摸框架一起正常工作