2012-01-12 66 views
0

我将gridview放入对话框中,但无法以任何方式更改其大小,它始终以水平方向填充屏幕。如何更改对话框中的网格视图宽度

protected Dialog getMoreMenuDialog(GridView gridView) { 
    Dialog d = new Dialog(AbstractActivity.this, R.style.menuDialog); 
    Window window = d.getWindow(); 
    window.setGravity(Gravity.BOTTOM); 
    android.view.WindowManager.LayoutParams params = window.getAttributes(); 
    params.y = findViewById(R.id.context_menu_ll).getHeight() + 3; 
    window.setAttributes(params); 
    d.setCancelable(true); 
    d.setCanceledOnTouchOutside(true); 
    int WRAP_CONTENT = LayoutParams.WRAP_CONTENT; 
    gridView.setLayoutParams(new LayoutParams(100, WRAP_CONTENT)); 
    d.addContentView(gridView, new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT)); 

    return d; 
} 

下一个是地方调用此方法

 LayoutInflater factory = LayoutInflater.from(this); 
     final GridView gridView = (GridView) factory.inflate(R.layout.winner_moremenu, null); 
     mMoreMenuItemsGridView = gridView; 
     // gridView.setAdapter(new 
     // MenuAdapter(getApplicationContext(),getMoreMenuItems())); 
     OnItemClickListener il = getMenuGridOnItemClickListener(); 
     if (il == null) { 
      il = mDefaultMoreMenuListener; 
     } 
     gridView.setOnItemClickListener(il); 
     return getMoreMenuDialog(gridView); 

是什么R.layout.winner_moremenu?接下来

<GridView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/menu_grid" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:padding="2dp" 
android:verticalSpacing="2dp" 
android:horizontalSpacing="2dp" 
android:numColumns="4" 
android:columnWidth="60dp" 
android:stretchMode="columnWidth" 
android:listSelector="@drawable/shap_context_menu_focus" 
android:gravity="center" 
/> 

回答

0

我解决它。使用布局来包含gridview,然后将其添加到对话框并设置布局的大小。