开发者

GridView and excess space padding

开发者 https://www.devze.com 2023-04-11 15:07 出处:网络
I have a problem with grid view layout on Android. I can\'t find solution to eliminate extra space in grid view. I tried a lot of things (numColumns, columnWidth, stretchMode, gravity) and advices (fr

I have a problem with grid view layout on Android. I can't find solution to eliminate extra space in grid view. I tried a lot of things (numColumns, columnWidth, stretchMode, gravity) and advices (from StackOverflow), but nothing works correctly. I spent almost 8 hours with this problem. Here is a code of grid view:

<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"
 开发者_JS百科       android:cacheColorHint="#000"
        android:descendantFocusability="afterDescendants"
        android:layout_alignParentTop="true"
        android:layout_above="@id/buttons">
    </GridView> 

I also tried to reduce extra space programically:

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);
}

But it works only on my HTC Desire (right), but on emulator (left) with the same display resolution and the same API version - it is not working.

GridView and excess space padding

Does somebody know, how to set images in gridview without any special padding or space to work successfully with all resolutions and devices?


To solve my problem I used this 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>

The most important thing is the clipChildren property.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号