我正在我的应用程序中实现网格视图,我想使用 java 代码获取网格视图中连续行之间的水平间距和连续列之间的垂直间距。
是否可以?有没有直接的方法来获得间距?
您可以在标签中使用android:verticalSpacing
and并根据您的要求提供间距。android:horizontalSpacing
GridView
例如:
<GridView
android:layout_height="wrap_content"
android:id="@+id/gridView1"
android:layout_width="match_parent"
android:numColumns="auto_fit"
android:horizontalSpacing="10dp" // space between two items (horizontal)
android:verticalSpacing="10dp"> // space between two rows (vertical)
在 java 上尝试:
"gridviewname".getHorizontalSpacing()
"gridviewname".getVerticalSpacing()
你也可以试试Java
mGridView.setHorizontalSpacing(4);
mGridView.setVerticalSpacing(4);
或者在 XML
<GridView
android:layout_height="wrap_content"
android:id="@+id/gridView1"
android:layout_width="match_parent"
android:numColumns="auto_fit"
android:horizontalSpacing="4dp"
android:verticalSpacing="4dp">
如果您的 minSdk 是 16,那么您可以使用mGridView.getHorizontalSpacing()
或mGridView.getVerticalSpacing()
.
如果没有,您可以在 xml 布局android:verticalSpacing="@dimen/grid_spacing"
和代码中设置使用getResources().getDimensionPixelSize(R.dimen.grid_spacing)
.
这样,您可以只在一个地方更改大小,它会影响 xml 布局和代码。
在 /res/values/dimens.xml 添加这一行 -
<dimen name="grid_spacing">10dp</dimen>