我目前实现其连接至保持元件的任意量的定制适配器一个GridView。中心的ViewGroup在GridView的水平和垂直
每一元素,然后在由垂直的LinearLayout的与ImageView的和两个TextViews定制的ViewGroup所示。我正在计算ViewGroup的宽度,它基于可用的屏幕属性,并且想要在网格中水平和垂直居中。问题是,该项目在屏幕的最左边的边框显示(没有任何填充),并在屏幕的最右边界(也没有任何填充)。如果我为整个GridView设置了填充或边距,则滚动条将位于项目的一侧,而不是位于屏幕边缘,这看起来很糟糕。这就是为什么我不想为GridView设置填充但将元素居中的原因。
这里是我的GridView的代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/launchLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<com.markupartist.android.widget.ActionBar
android:id="@+id/actionbar"
style="@style/ActionBar"
/>
<GridView
android:id="@+id/grid"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:verticalSpacing="@dimen/launch_grid_padding"
android:horizontalSpacing="@dimen/launch_grid_padding"
android:numColumns="auto_fit"
android:stretchMode="columnWidth"
android:gravity="center"
android:listSelector="#00000000"
android:layout_marginTop="@dimen/launch_grid_padding"
android:layout_marginBottom="@dimen/launch_grid_padding"
/>
</LinearLayout>
</RelativeLayout>
@扪/ launch_grid_padding有20dp的值。
这是我自定义的ViewGroup布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@drawable/rounded_box"
android:layout_gravity="center"
>
<ImageView
android:id="@+id/img"
android:layout_width="120dp"
android:layout_height="84dp"
android:scaleType="centerInside"
/>
<TextView
android:id="@+id/identifier1"
android:layout_width="120dp"
android:layout_height="wrap_content"
android:background="@android:color/white"
android:gravity="left|center_vertical"
android:typeface="sans"
android:textStyle="bold"
android:textColor="#333333"
android:textSize="12dp"
android:lines="1"
android:ellipsize="marquee"
/>
<TextView
android:id="@+id/identifier2"
android:layout_width="120dp"
android:layout_height="wrap_content"
android:textColor="#333333"
android:background="@android:color/white"
android:gravity="left|center_vertical"
android:textSize="10dp"
android:lines="1"
/>
</LinearLayout>
这是多了还是少了什么,我试图完成(与项目数量可变的):
http://www.appdesignvault.com/wp-content/uploads/2012/04/iphone-app-design-bizapp-5.jpg
任何帮助将不胜感激!
谢谢,这或多或少地解决了这个问题。我仍然必须定义verticalSpacing。 – 2012-04-29 17:56:34