【问题标题】:Android: How to display item at the center in GridView based on different number of items generatedAndroid:如何根据生成的不同数量的项目在GridView的中心显示项目
【发布时间】:2017-09-18 09:27:03
【问题描述】:

如果适配器只生成一个项目,我是否可以知道有什么方法可以将GridView 中的项目对齐以显示在中心。如果adapter生成了两个item,很适合这个界面,但是如果只有一个item,就会显示在左边。我知道这是因为我设置了android:numColumns="2",但是有没有办法让它动态地像只生成一个项目,然后它会显示在中心。

更新我的 XML 代码:

    <RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:gravity="center"
    android:layout_margin="25dp"
    android:background="@android:color/darker_gray"
    android:id="@+id/relativeLayout">

    <RelativeLayout
        android:layout_width="800dp"
        android:layout_height="800dp"
        android:orientation="horizontal"
        android:layout_margin="20dp"
        android:id="@+id/layout">

        <TextView
            android:text="**Recommendation For You**"
            android:layout_width="800dp"
            android:layout_height="wrap_content"
            android:textColor="#000000"
            android:textSize="20sp"
            android:textStyle="bold"
            android:id="@+id/textView15"
            android:layout_gravity="center"
            android:gravity="center"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true" />

        <TextView
            android:text="(Most people will order below food item as well!)"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#000000"
            android:textSize="14sp"
            android:layout_gravity="center"
            android:gravity="center"
            android:id="@+id/textView14"
            android:layout_below="@+id/textView15"
            android:layout_centerHorizontal="true" />

        <GridView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:numColumns="auto_fit"
            android:padding="5dp"
            android:verticalSpacing="5dp"
            android:horizontalSpacing="5dp"
            android:stretchMode="columnWidth"
            android:layout_below="@+id/textView14"
            android:layout_marginTop="5dp"
            android:layout_gravity="center"
            android:gravity="center"
            android:layout_marginLeft="100dp"
            android:layout_marginRight="100dp"
            android:id="@+id/gridView" />

        <TextView
            android:text="(Click on the VIEW button below for more information!)"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#000000"
            android:textSize="14sp"
            android:layout_gravity="center"
            android:gravity="center"
            android:id="@+id/textView13"
            android:layout_above="@+id/viewButton"
            android:layout_centerHorizontal="true" />

        <Button
            android:text="View"
            android:layout_width="130dp"
            android:layout_height="wrap_content"
            android:background="#82CAFA"
            android:textSize="20sp"
            android:id="@+id/viewButton"
            android:layout_alignParentBottom="true"
            android:layout_alignLeft="@+id/textView14"
            android:layout_alignStart="@+id/textView14" />

        <Button
            android:text="Cancel"
            android:layout_width="130dp"
            android:layout_height="wrap_content"
            android:id="@+id/cancelButton"
            android:background="#82CAFA"
            android:textSize="20sp"
            android:layout_alignParentBottom="true"
            android:layout_alignRight="@+id/textView14"
            android:layout_alignEnd="@+id/textView14" />

    </RelativeLayout>

</RelativeLayout>

【问题讨论】:

    标签: android gridview center


    【解决方案1】:
    In your custom Grid View Row Layout set layout_gravity to center and in gridview set numColumns="auto_fit"
    
            <GridView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:numColumns="auto_fit"
                android:padding="5dp"
                android:verticalSpacing="5dp"
                android:horizontalSpacing="5dp"
                android:stretchMode="columnWidth"
                android:layout_below="@+id/textView14"
                android:layout_marginTop="5dp"
                android:layout_gravity="center"
                android:gravity="center"
                android:layout_marginLeft="100dp"
                android:layout_marginRight="100dp"
                android:id="@+id/gridView" />
    
    change it to
    
            <GridView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:numColumns="auto_fit"
                android:padding="5dp"
                android:verticalSpacing="5dp"
                android:horizontalSpacing="5dp"
                android:stretchMode="columnWidth"
                android:layout_below="@+id/textView14"
                android:layout_marginTop="5dp"
                android:gravity="center"
                android:id="@+id/gridView" />
    

    【讨论】:

    • 把网格行布局发给你,让我浏览一下
    • 我尝试用urs替换我的代码,但结果还是一样。不过中间没有显示。
    • okk..你已经使用了 layout_gravity 和 Gravity 都只使用了重力
    猜你喜欢
    • 2012-10-04
    • 2010-11-06
    • 1970-01-01
    • 2021-11-21
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多