2017-06-08 140 views
0

該應用程序的設計與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

你在你的模型中定義一個標誌

boolean clicked = false; 

那麼當一個項目在列表中點擊你應該用一個簡單的,如果和其他人改變它的點擊狀態

model.clicked = !model.clicked; 

然後onBindViewHolder您可以用true更改物品的視圖點擊狀態

@Override 
public void onBindViewHolder(ViewHolder holder, int position) { 
     Model model = models.get(position); 
     if(model.clicked){} 
     else{} 
} 
相關問題