应用程序是在RecyclerView的帮助下进行设计的,其中包含进度条的线性布局我需要帮助来在单击项目时更改视图,并且当单击项目时,那个被单击的项目应该看起来与另一个项目相比,在相同的位置,并且在点击时假设我得到数字20然后进度条颜色应该更改为20%不同颜色并且剩余应该是不同颜色。
main.xml中
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="1dp"
android:layout_marginTop="16dp"
android:scrollbars="vertical" />
list.xml
<LinearLayout
android:id="@+id/llDevice"
android:layout_width="80dp"
android:layout_height="80dp"
android:orientation="vertical"
android:gravity="center_horizontal|center_vertical"
android:visibility="visible">
<ProgressBar
android:id="@+id/pbBatteryStatus"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="wrap_content"
android:layout_height="10dp"
android:layout_gravity="center"
android:indeterminateOnly="false"
android:max="100"
android:progressDrawable="@drawable/border_progressbar"/>
</LinearLayout>
border_progressbar.xml
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
<shape>
<corners android:radius="5dp" />
<gradient
android:centerColor="@color/ripple_grey"
android:endColor="@color/ripple_grey"
android:startColor="@color/ripple_grey" />
</shape>
</item>
<item android:id="@android:id/progress">
<clip>
<shape>
<corners android:radius="5dp" />
<gradient
android:endColor="@color/ripple_errorMsg"
android:startColor="@color/ripple_color" />
</shape>
</clip>
</item>
请帮助我解决这些问题
答案 0 :(得分:0)
您必须在模型中定义标记
boolean clicked = false;
然后当您在列表中点击某个项目时,您应该更改其点击状态
model.clicked = !model.clicked;
然后在onBindViewHolder
中使用简单的if,否则您可以更改true
点击状态的项目视图
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
Model model = models.get(position);
if(model.clicked){}
else{}
}