我有一个3列GridView
和4个项目。
所以碰巧它们中的三个出现在第一行,而最后一行出现在第二行,但是这一行与左边对齐。我只是想知道是否有可能使它显示在GridView
的中心位置。就像'T',我不知道我是否解释...... xD
谢谢: - )
修改
这是包含GridView
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/section_title_root"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/bg_gd_home_grid">
<ImageView
android:src="@drawable/home_grid_txori"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="40dip"
android:layout_centerHorizontal="true"/>
<GridView
android:id="@+id/home_grid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:numColumns="3"
android:drawSelectorOnTop="true"
android:layout_marginBottom="30dip"
android:layout_marginLeft="30dip"
android:layout_marginRight="30dip"
android:padding="5dip"
android:listSelector="@android:color/transparent"
android:background="@drawable/bg_home_grid_item"
/>
</RelativeLayout>
顺便说一下,android:layout_centerHorizontal="true"
在GridView中不起作用
解决方案编辑:
这个问题来自几年前,但我被要求发布解决方案,我必须找到我的旧回购才能得到它: - )
正如我在评论中所说的那样,我无法在XML中实现它,所以我不得不在第3位欺骗假的不可点击+不可聚焦的项目。
这是我的第一个App,所以我没有实现推荐的“ViewHolder”解决方案。我强烈建议使用
这是我的getView()方法在适配器中的样子:
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = (RelativeLayout) mInflater.inflate(
R.layout.home_grid_item, null);
}
/* In order to have 4th item centered in the 2nd row, we create an empty 3rd item */
if (position == 3) {
convertView.setFocusable(false);
convertView.setClickable(false);
} else {
ImageView imageView = (ImageView) convertView
.findViewById(R.id.image);
imageView.setImageResource(mThumbs[position]);
TextView textView = (TextView) convertView.findViewById(R.id.title);
textView.setText(mTitles[position]);
}
convertView.setTag(mTabTags[position]);
return convertView;
}
答案 0 :(得分:1)
您可以尝试以下代码:
android:gravity="center_horizontal"
xml中的。
答案 1 :(得分:0)
这就是我解决这个问题的方法。 当我完全了解该列时,我动态地设置了numcolumn。
<GridView
android:id="@+id/gr_single"
android:verticalSpacing="@dimen/pay_mode_icon_margin"
android:horizontalSpacing="@dimen/pay_mode_icon_margin"
android:columnWidth="@dimen/pay_icon_width"
android:gravity="center"
android:stretchMode="columnWidth"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
在java。
中mGridView.setNumColumns(mSingleImageViews.size());
mGridView.setAdapter(new ImageAdapter());