【问题标题】:GridView and excess space paddingGridView 和多余的空间填充
【发布时间】:2011-12-04 01:19:51
【问题描述】:

我对 Android 上的网格视图布局有疑问。我找不到消除网格视图中多余空间的解决方案。我尝试了很多东西(numColumns、columnWidth、stretchMode、gravity)和建议(来自 StackOverflow),但没有一个能正常工作。我花了将近 8 个小时来解决这个问题。这是网格视图的代码:

<GridView
        android:id="@+id/lookbook_gridview"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:listSelector="@null"
        android:padding="0dip"
        android:layout_margin="0dip"
        android:verticalSpacing="0px"
        android:horizontalSpacing="0px"

        android:numColumns="auto_fit"
        android:columnWidth="160px"
        android:stretchMode="columnWidth"
        android:gravity="center" 
        android:layout_gravity="center"

        android:background="#000"
        android:cacheColorHint="#000"
        android:descendantFocusability="afterDescendants"
        android:layout_alignParentTop="true"
        android:layout_above="@id/buttons">
    </GridView> 

我还尝试以编程方式减少额外空间:

private void setGridview()
{  
    GridView gridview = (GridView) findViewById(R.id.lookbook_gridview);
    Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();

    int gridSize = display.getWidth();
    int count = gridSize / 160; // image has 160x160 px
    int colWidth = (gridSize / count) - PADDING;

    gridview.setColumnWidth(colWidth);
    gridview.setNumColumns(count);
}

但它只适用于我的 HTC Desire(右),但在具有相同显示分辨率和相同 API 版本的模拟器(左)上 - 它不起作用。

有人知道,如何在没有任何特殊填充或空间的情况下在 gridview 中设置图像以在所有分辨率和设备上成功工作吗?

【问题讨论】:

标签: android layout gridview padding stretch


【解决方案1】:

为了解决我的问题,我使用了这个 gridView:

<GridView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/MyGrid" android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:padding="0dp"
    android:verticalSpacing="2dp" 
    android:horizontalSpacing="2dp"
    android:scrollingCache="true" 
    android:smoothScrollbar="true"
    android:clipChildren="true" 
    android:alwaysDrawnWithCache="true"
    android:numColumns="auto_fit" 
    android:columnWidth="100dp"
    android:stretchMode="columnWidth" 
    android:gravity="center_horizontal"
    android:background="#000000">
</GridView>

最重要的是clipChildren属性。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-29
  • 2013-03-12
  • 1970-01-01
  • 1970-01-01
  • 2018-11-11
  • 2015-04-14
  • 2021-02-06
相关资源
最近更新 更多