我正在我的应用程序中实现一个网格视图,我希望使用java代码在网格视图中获取连续行之间的水平间距和连续列之间的垂直间距。
有可能吗? 是否有任何直接的方法来获得间距?
答案 0 :(得分:8)
您可以在android:verticalSpacing
代码中使用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()
答案 1 :(得分:1)
如果你的minSdk是16,那么你可以使用mGridView.getHorizontalSpacing()
或mGridView.getVerticalSpacing()
。
如果没有,您可以在xml布局android:verticalSpacing="@dimen/grid_spacing"
中设置,在代码中使用getResources().getDimensionPixelSize(R.dimen.grid_spacing)
。
这样,您可以在一个地方更改大小,它会同时影响xml-layout和代码。
在/res/values/dimens.xml里面添加这一行 -
<dimen name="grid_spacing">10dp</dimen>
答案 2 :(得分:1)
您也可以尝试使用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">