我在对话框中有一个评级栏。我已将最大星数设置为 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();
}
答案 0 :(得分:0)
从官方文档中
当布局宽度设置为换行内容时,将显示设置的星数(通过setNumStars(int)或在XML布局中)(如果设置了另一个布局宽度,结果可能无法预测)。
此外,您应该使用setNumStars()
来设置星号,而不是setMax()
。
通过调用setLayoutParams()
:
ratingBar.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));