android gridview对齐,android – GridView – 有时行是顶部对齐的,有时它们是底部对齐的!...

我正在使用GridView。一列中的四个项目。每个元素由以下布局组成:

xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:orientation="vertical">

android:layout_width="32dip"

android:layout_height="32dip"/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textSize="11dip"

android:paddingTop="2dip" />

所以每个元素都是一个小图像,下面有一点文字。布局在第一遍很好。但是,如果一个项目的文本很长,它会包裹到两行。这样可以正常工作,直到你滚动进入和退出视图。默认情况下,一行中的所有图像都是顶部对齐的。当您在屏幕之外滚动一行时,然后返回到屏幕上,您将看到该行以某种方式获得底部对齐。看起来像:

第一布局:

[image] [image] [image]

[text] [text] [text

wrap]

所以即使第三个元素有两行文字,顶部是对齐的是完美的。如果我从屏幕上滚动这一行,然后再回到上面,它看起来像这样:

[image]

[image] [image] [text

[text] [text] wrap]

所以这行在底部对齐。我不知道这是否是GridView中的一个错误,或者如果有一些方法可以控制布局以始终对齐行。我已经尝试将元素布局的重力设置为“顶”,没有好处。 GridView也不会有任何唯一的设置来控制。有任何想法吗?

谢谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
AndroidGridView中,如果想要让复选框和文字顶对齐,可以通过设置GridView的适配器来实现。 首先,创建一个自定义的适配器类,继承自BaseAdapter。在适配器的getView方法中,可以使用一个LinearLayout来包裹复选框和文字,然后设置LinearLayout的gravity属性为top,这样就可以让复选框和文字顶对齐了。 具体的代码实现如下: ``` public class MyAdapter extends BaseAdapter { private Context mContext; private List<String> mDataList; public MyAdapter(Context context, List<String> dataList) { mContext = context; mDataList = dataList; } @Override public int getCount() { return mDataList.size(); } @Override public Object getItem(int position) { return mDataList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { convertView = LayoutInflater.from(mContext).inflate(R.layout.grid_item, parent, false); holder = new ViewHolder(); holder.checkBox = convertView.findViewById(R.id.checkbox); holder.textView = convertView.findViewById(R.id.textview); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.textView.setText(mDataList.get(position)); holder.checkBox.setChecked(false); return convertView; } private static class ViewHolder { CheckBox checkBox; TextView textView; } } ``` 在上述代码中,R.layout.grid_item代表GridView的每个单元格布局文件,该布局文件中的复选框和文字应该被包裹在一个LinearLayout中,并设置LinearLayout的gravity属性为top。 然后,在GridView的Activity中,使用这个自定义适配器来设置GridView的适配器: ``` GridView gridView = findViewById(R.id.gridview); List<String> dataList = new ArrayList<>(); // 添加数据到dataList MyAdapter adapter = new MyAdapter(this, dataList); gridView.setAdapter(adapter); ``` 通过这样的方式,复选框和文字就可以顶对齐了。希望以上回答能够帮到您!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值