как изменить ширину сетки в диалоге - PullRequest
0 голосов
/ 12 января 2012

Я помещаю 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;
}

next - это место, где вызывается этот метод

        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"
/>

1 Ответ

0 голосов
/ 13 января 2012

Я решил это. Используйте макет для отображения сетки, затем добавьте его в диалоговое окно и установите размер макета.

...