Android RatingBar显示超过5颗星

我想通过我的android应用程序中的提示对话框显示评级栏。 我面临的问题是,根据屏幕的宽度,在横向模式下,评分栏显示超过5颗星(最多10颗),而函数setNumStars()不起作用。 有些post已经处理了这个问题,但是他们处理的是一个等级栏,在我dynamic地创build它的时候,这个等级栏是静态定义的。 如何解决这个问题呢?

public class MainActivity extends Activity { private Button launchButton; //Rating dialog private AlertDialog.Builder rater; private RatingBar ratingBar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); launchButton =(Button)findViewById(R.id.ratingButton); launchButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub //Here the alert dialog will be launched showRatingDialog(); } }); //Setting up rating dialog rater = new AlertDialog.Builder(this); rater.setTitle("This is the rating dialog"); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } public void showRatingDialog() { ratingBar = (RatingBar)findViewById(R.id.ratingStars); rater.setNegativeButton("Abbrechen", null); rater.setView(ratingBar); rater.show(); } } 

我曾尝试使用静态布局的评级栏,但是当我这样做,并试图通过警报对话框显示评级栏,没有星星显示。 这里是评级栏的布局文件:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <RatingBar android:id="@+id/ratingStars" android:layout_width="wrap_content" android:layout_height="wrap_content" android:numStars="5" android:stepSize="1" /> </LinearLayout> 

Solutions Collecting From Web of "Android RatingBar显示超过5颗星"

尝试为您的RatingBar Like Below设置最大值

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/active_bg" > <RatingBar android:id="@+id/rating" android:layout_width="wrap_content" android:layout_height="wrap_content" style="?android:attr/ratingBarStyleSmall" android:numStars="5" android:stepSize="0.1" android:isIndicator="true" /> </RelativeLayout> 

在布局文件中创build一个xml文件并将其设置为内容

像这样改变你的showDialog函数

 LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE); View layout = inflater.inflate(R.layout.***your_xml_name***)); editor.setView(layout); editor.show(); 

将RatingBar的宽度设置为“包装内容”解决了整个问题。 根据文件:

设置要显示的星星数量。 为了正确显示这些信息,build议这个小部件的布局宽度是包装内容。

设置android:numStars =“5”和android:layout_width =“wrap_content”

保持评级栏的父母线性布局,并保持没有其他线性布局,这对我有效

这个博客展示了解决scheme的清晰画面