Android 片段在恢复时创建不同的分级栏

Android 片段在恢复时创建不同的分级栏,android,android-fragments,ratingbar,Android,Android Fragments,Ratingbar,我有一个片段,其布局包括一些具有给定评级的评级条(动态设置)。在片段中,我可以单击一些区域,这会导致转换到另一个片段。我的问题是:当我传递到下面的片段,然后点击后退按钮返回到原来的片段时,我发现UI与以前完全一样,只是评级栏除外,现在它们的评级与列表中的最后一个(下面代码中的项目2)完全相同!知道发生了什么吗?以下是原始片段代码: @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bu

我有一个片段,其布局包括一些具有给定评级的评级条(动态设置)。在片段中,我可以单击一些区域,这会导致转换到另一个片段。我的问题是:当我传递到下面的片段,然后点击后退按钮返回到原来的片段时,我发现UI与以前完全一样,只是评级栏除外,现在它们的评级与列表中的最后一个(下面代码中的项目2)完全相同!知道发生了什么吗?以下是原始片段代码:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    scroller = new ScrollView(getActivity());
    ln = new LinearLayout(getActivity());
    ln.setOrientation(LinearLayout.VERTICAL);
    scroller.addView(ln);
    \\define items

    addItemLayout(item1, inflater, container);  
    addItemLayout(item2, inflater, container);  

    return scroller;        
}

private void addItemLayout(MyItem item, LayoutInflater inflater, ViewGroup container){

    View uiItem = inflater.inflate(R.layout.item, container,false);                         

    \\insert textviews...

    RatingBar ratingBar = (RatingBar) uiItem.findViewById(R.id.rating);
    ratingBar.setRating(item.getRating());
    View content = uiItem.findViewById(R.id.content);
    final MyItem itemToPass = item;

    content.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v){    
            FragmentTransaction transaction = getFragmentManager().beginTransaction();
            transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
            transaction.addToBackStack(null);
            transaction.replace(R.id.root_frame, NextFragment.newInstance(itemToPass));
            transaction.commit();
        }
    }); 
    ln.addView(uiItem);     
}
这是布局文件中的分级栏

<RatingBar
        android:id="@+id/rating"
        style="@style/myRatingBar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/upperlabel"
        android:layout_marginBottom="3dp"
        android:isIndicator="true"
        android:numStars="5"
        android:stepSize="1" />

因此,第一个片段的布局在一开始就被完美地创建,然后在事务发生时被销毁,当点击后退按钮后重新创建时,它被完美地重新创建,除了分级栏!第一次onCreateView()的效果如何可能与第二次调用的同一方法的效果不同

编辑:这似乎与我使用自定义分级条有关,因为使用标准分级条时问题就消失了。以下是我的分级栏的样式:

<style name="foodRatingBar" parent="@android:style/Widget.RatingBar">
    <item name="android:progressDrawable">@drawable/ratingstars</item>
    <item name="android:minHeight">16dp</item>
    <item name="android:maxHeight">16dp</item>
</style>

@可拉伸/分级星形
16dp
16dp
这是ratingstars.xml:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+android:id/background"
      android:drawable="@drawable/emptyglass" />
<item android:id="@+android:id/secondaryProgress"
      android:drawable="@drawable/emptyglass" />
<item android:id="@+android:id/progress"
      android:drawable="@drawable/fullglass" />
</layer-list>

其中,emptyglass和fullglass是两个png图像