android - 适配器中的膨胀布局忽略大小

标签 android android-layout

我正在尝试在列表适配器中扩充此资源:

<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。

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

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

我怎样才能实现我想要的,让 View 的根为 200x200dp 并且它的子级的大小与 match_parent 相对?

最佳答案

尝试用一些父布局包装您的 FrameLayout,该布局具有指定给 match_parent 的 layout_width 和 layout_height 属性。然后在该父项中,您可以设置 FrameLayout 的大小和重力 –

关于android - 适配器中的膨胀布局忽略大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16299896/

相关文章:

android - redmi手机android后台服务被杀

android - 在页面底部添加一个不重叠内容的 Admob 横幅

android - setContentView() 不起作用

android - ResourceNotFoundException 怎么调试?

java - TextView 无法转换为 SeekBar

android - 如何在 Canvas 的右下角绘制图像?

Android在主题中全局设置编辑文本样式不起作用

java - 按存在的数字对文本文件的行进行排序,并按降序输出整行

android - 需要将数据库回滚到以前的状态

android - 图像处理和相机 ISO