我正在尝试在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;
}
虽然我指定高度和宽度为200dp的myview
的根,但它完全忽略了大小,并导致大小为0x0。
在代码中指定自定义高度和宽度会导致视图占用父级的大小,再次忽略我的200dp
首选项:
ViewGroup.LayoutParams layoutParams = (ViewGroup.LayoutParams) view.getLayoutParams();
layoutParams.height = dpToPx(200);
layoutParams.width = dpToPx(200);
view.setLayoutParams(layoutParams);
如何实现我想要的,View
的根位于200x200dp且相对大小为match_parent
的孩子?
答案 0 :(得分:2)
尝试使用一些父布局包装你的FrameLayout,该布局具有指定给match_parent的layout_width和layout_height属性。然后在该父级内部,您可以设置FrameLayout的大小和重力 -
答案 1 :(得分:1)
基本上,添加另一个布局并指定该布局的高度。使用适配器视图时,指定根布局的高度不起作用。