【发布时间】:2012-03-17 01:56:47
【问题描述】:
我在 main.xml 中有以下布局:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<FrameLayout
android:layout_width="125dp"
android:layout_height="300dp"
android:layout_gravity="center"
android:padding="5dp"
android:background="#FFFF00">
<View
android:id="@+id/placeholder"
android:layout_width="fill_parent"
android:layout_height="290dp"
android:background="#FF0000" />
</FrameLayout>
</FrameLayout>
MainActivity.java中的代码如下:
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
View view = findViewById(R.id.placeholder);
MarginLayoutParams mlParams = (ViewGroup.MarginLayoutParams)view.getLayoutParams();
mlParams.topMargin = 50;
view.setLayoutParams(mlParams);
}
}
边距将应用于子视图,但根本不会影响父视图的大小。我可以用以下行“修复”这个问题:
((View)view.getParent()).getLayoutParams().height += 50;
但是我怎么能做到这一点不明确改变父母的`身高?这是可能的还是没有多大意义?
【问题讨论】:
标签: android view parent margin