对话框中的Android评分栏不同屏幕尺寸问题

时间:2015-02-01 04:24:39

标签: android ratingbar

我在对话框中有一个评级栏。我已将最大星数设置为 6 。以下代码适用于屏幕尺寸较小的智能手机。但是,在平板电脑(10英寸)上进行测试时,我看到 11 启动并且布局包装了内容。为什么会出现这种奇怪的行为?以及如何解决它?

public void ShowDialog()
    {
        final AlertDialog.Builder popDialog = new AlertDialog.Builder(this);
        final RatingBar rating = new RatingBar(this);
        rating.setMax(6);

        popDialog.setTitle("Vote!! ");
        popDialog.setView(rating);

        // Button OK
        popDialog.setPositiveButton(android.R.string.ok,
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        txtView.setText(String.valueOf(rating.getProgress()));
                        dialog.dismiss();
                    }

                })

        // Button Cancel
                .setNegativeButton("Cancel",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int id) {
                                dialog.cancel();
                            }
                        });

        popDialog.create();
        popDialog.show();

    }

1 个答案:

答案 0 :(得分:0)

从官方文档中

  

当布局宽度设置为换行内容时,将显示设置的星数(通过setNumStars(int)或在XML布局中)(如果设置了另一个布局宽度,结果可能无法预测)。

此外,您应该使用setNumStars()来设置星号,而不是setMax()

通过调用setLayoutParams()

,在评级栏上设置布局宽度属性
        ratingBar.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));