为什么我所包含的进度条获得相同的进度值?

时间:2016-03-10 10:17:29

标签: android android-fragments

我有一个包含2个片段的viewPager。 问题出在第一个片段内。它包含以下 layout.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    android:orientation="vertical">

    <include  
       android:id="@+id/first"
       layout="@layout/view_part"/>
   <include  
       android:id="@+id/second"
       layout="@layout/view_part"/>
   <include  
       android:id="@+id/third"
       layout="@layout/view_part"/>

</LinearLayout>

现在为 view_part.xml (包含的布局)

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

    <!-- some other views -->

   <ProgressBar
    android:id="@+id/ProgressBar"
    style="@android:style/Widget.ProgressBar.Horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:max="100" />
</RelativeLayout>

对于我所拥有的片段中的 onCreateView 方法:

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
       View rootView= inflater.inflate(R.layout.layout, container, false);
       (RelativeLayout) rl1 = (RelativeLayout) rootView.findViewById(R.id.first);
       (RelativeLayout) rl2 = (RelativeLayout) rootView.findViewById(R.id.second);
       (RelativeLayout) rl3 = (RelativeLayout) rootView.findViewById(R.id.third);

       ((ProgressBar) rl1.findViewById(R.id.ProgressBar)).setProgress(25);
       ((ProgressBar) rl2.findViewById(R.id.ProgressBar)).setProgress(50);
       ((ProgressBar) rl3.findViewById(R.id.ProgressBar)).setProgress(75);

       return rootView;
 }

片段第一次加载一切都很好。所有进度条都显示了不同的进度。

然而,当我旋转屏幕,或者视图由viewPager自动解除分配时,它再次调用onCreateView函数,但这次所有progressBars显示75%,这是我设置的最后一个。

0 个答案:

没有答案