在Horizo​​ntalGridView Android中设置列数和水平

时间:2016-08-19 12:31:04

标签: android gridview horizontal-scrolling

当我尝试创建一个可以使用 android.support.v17.leanback.widget.Horizo​​ntalGridView

水平滚动的网格视图时,我在标题上提到了一个问题

结果看起来像这样: enter image description here

但是我需要在每个项目之间留出一些空间,并且控件数量的项目会出现在屏幕上,如下所示: enter image description here

我的layout.xml代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerHorizontal="true"
android:orientation="vertical"
tools:context="layout.productListFragment">

<!-- TODO: Update blank fragment layout -->

<android.support.v17.leanback.widget.HorizontalGridView       xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/productListGrid"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:gravity="top"   
/>

我尝试使用下面的代码,但它看起来并没有生效

android: android:numColumns="3"
android:columnWidth="60dp"
android:stretchMode="columnWidth"

有single_product_layout

的代码
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFFFF"
android:paddingLeft="5dp"
android:paddingRight="5dp">

<TableRow
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center_vertical">

    <ImageView
        android:id="@+id/singleProduct_image"
        android:layout_width="wrap_content"
        android:layout_height="150dp"
        android:layout_gravity="top"
        android:layout_span="2"
        android:src="@drawable/product1" />
</TableRow>

<TableRow>

    <TextView
        android:id="@+id/singleProduct_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/singleProduct_image"
        android:gravity="left"
        android:text="Tên sản phẩm"
        android:textSize="12dp"
        android:textStyle="bold" />
</TableRow>

<TableRow>

    <RatingBar
        android:id="@+id/singpleProduct_ratingBar"
        style="?android:attr/ratingBarStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/singleProduct_name"
        android:layout_gravity="left"
        android:layout_weight="4"
        android:numStars="5" />

    <TextView
        android:id="@+id/singleProduct_price"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignEnd="@+id/singleProduct_image"
        android:layout_below="@+id/singleProduct_name"
        android:layout_gravity="right"
        android:layout_weight="6"
        android:gravity="right"
        android:text="25.000VND"
        android:textColor="@color/mainThemeColor"
        android:textSize="10dp" />
</TableRow>

</TableLayout>

非常感谢

1 个答案:

答案 0 :(得分:0)

我今天刚刚遇到这个问题,由于某些原因,Android Studio(撰写本文时为2.3)没有显示HorizontalGridView的所有自动填充选项(Leanback v17)。

您的目标是:

android:horizontalSpacing="10dp"

或者您可以通过

以编程方式执行此操作

gridView.setHorizontalSpacing(10)

其中10是以像素为单位的间距。