</pre><pre name="code" class="html"><RelativeLayout
android:id="@+id/pull_to_refresh_horizontal_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<FrameLayout
android:id="@+id/pull_to_refresh_image_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left|center_vertical" >
<ImageView
android:id="@+id/pull_to_refresh_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:scaleType="centerInside"
android:src="@drawable/homepage_icon_small" />
<ProgressBar
android:id="@+id/pull_to_refresh_progress"
style="?android:attr/progressBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:indeterminate="true"
android:visibility="gone" />
</FrameLayout></RelativeLayout>
有时候在设计布局时, 需要动态修改某个控件的位置, 居中, 靠左,等,
比如:我需要用Java代码 动态改变 FrameLayout 在 RelativeLayout 中为居中状态,
代码如下:
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
layoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);
mHeaderImageLayout = (FrameLayout)mInnerLayout.findViewById(R.id.pull_to_refresh_image_layout);
mHeaderImageLayout.setLayoutParams(layoutParams);mHeaderImageLayout 需要设置Layoutparams, 但需要的类型应该相对的为RelativeLayout.LayoutParams
不能使用FrameLayout .LayoutParams ,否则会出现类型错误.

本文介绍了如何在Java代码中使用LayoutParams动态修改RelativeLayout中控件的布局,以实现控件居中或其他定位效果。通过设置RelativeLayout.LayoutParams,可以避免因使用错误的LayoutParams类型导致的错误。
627

被折叠的 条评论
为什么被折叠?



