我有一个布局问题,我有一个我在gridView中使用的自定义布局,其中复选框假设在imageView的右下角对齐。布局的预览显示它看起来正确,但当它加载到gridView时,它会将复选框移动到imageView的左上角。我已经尝试在gridView中缩小图像,并删除gridview中对象之间的间距,但无济于事。
这是我对gridView
的每个项目的自定义布局<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/imgThumb"
android:layout_width="100dp"
android:layout_height="100dp"/>
<CheckBox
android:id="@+id/chkImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignEnd="@+id/imgThumb"
android:layout_alignRight="@+id/imgThumb"
android:layout_alignBottom="@+id/imgThumb"/>
</RelativeLayout>
这是gridView布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">
<GridView
android:id="@+id/grdImages"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:numColumns="3"
android:verticalSpacing="5dp"
android:horizontalSpacing="5dp"
android:columnWidth="90dp"
android:stretchMode="columnWidth"
android:gravity="center"/>
<Button
android:id="@+id/btnSelect"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Select"
android:layout_marginTop="5dp"/>
</LinearLayout>
这是我希望gridview中的项目看起来像什么的图像,这也是预览显示它看起来像Preview
的图像这就是实际gridView GridView
中发生的情况答案 0 :(得分:0)
发生此问题的原因是您没有为ImageView设置对齐方式。 只需为ImageView设置alignParentTop = true即可。 然后,通过将其属性layout_below指向ImageView的id来对齐ImageView下方的Checkbox。
或者,使用LinearLayout替换RelativeLayout,其方向是垂直的,因为您已将ImageView设置为固定大小。
答案 1 :(得分:0)
尝试添加:android:layout_marginStart="xdp"
x为您的案例的逻辑编号(不能说没有看到任何图像的任何内容)到xml bloq的复选框。
顺便说一下,你应该使用constraint layouts来避免这些问题!而且,如果您已经存在,则只是忘记限制复选框。
祝你好运。答案 2 :(得分:0)
这可能会有所帮助。
custom_layout:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/imgThumb"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity"center"/>
<CheckBox
android:id="@+id/chkImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right|bottom"/>
</FrameLayout>
答案 3 :(得分:0)
这对我来说很好。
<ImageView
android:id="@+id/imgThumb"
android:layout_width="100dp"
android:layout_height="100dp"/>
<CheckBox
android:marginTop="80dp"
android:id="@+id/chkImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/imgThumb"/>
答案 4 :(得分:0)
试用此代码:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="100dp"
android:layout_height="100dp">
<ImageView
android:id="@+id/imgThumb"
android:layout_width="100dp"
android:layout_height="100dp"/>
<CheckBox
android:id="@+id/chkImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"/>
</RelativeLayout>
答案 5 :(得分:0)
尝试此自定义布局。这可能会对您有所帮助。
return _ctx.Course
.Include(u=>u.Person)
.Where(ug=>ug.CourseName == "Sciene");