3

我正在尝试在 listadapter 中扩充此资源:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:background="#ff0000"
    android:padding="@dimen/spacing_micro" >

    <View android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="10dp"
        android:background="#00ff00"/>
</FrameLayout>

使用以下代码:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ViewGroup view = (ViewGroup) convertView;
    if (view == null) {
        view = (ViewGroup) LayoutInflater.from(getContext()).inflate(R.layout.myview, parent, false);
    }

    return view;
}

虽然我指定myview高度和宽度为 200dp 的根,但它完全忽略了大小,并导致大小为 0x0。

在代码中指定自定义高度和宽度会导致视图采用父级的大小,再次忽略我的200dp偏好:

ViewGroup.LayoutParams layoutParams = (ViewGroup.LayoutParams) view.getLayoutParams();
layoutParams.height = dpToPx(200);
layoutParams.width = dpToPx(200);
view.setLayoutParams(layoutParams);

我怎样才能实现我想要的,拥有View200x200dp 的根和它的相对大小的孩子match_parent

4

2 回答 2

2

尝试使用一些父布局包装您的 FrameLayout,该布局具有指定为 match_parent 的 layout_width 和 layout_height 属性。然后在该父级中,您可以设置 FrameLayout 的大小和重力 -</p>

于 2013-05-01T05:35:30.020 回答
1

基本上,添加另一个布局并指定该布局的高度。使用适配器视图时,为根布局指定高度不起作用。

于 2013-04-30T12:37:58.853 回答