2016-05-21 94 views
0

我在實現一個我無法理解的RecyclerView時感到奇怪。按鈕的風格(主題一般)在充氣時改變RecyclerView

我使用默認的風格,它採用colorAccent從值/ colors.xml按鈕

<Button 
    android:id="@+id/next_button" 
    style="@style/Widget.AppCompat.Button.Colored" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:enabled="true" 
    android:text="Next" /> 

當我在佈局XML靜態使用這個按鈕我得到預期的按鈕顏色即 -

enter image description here

但是,當我在RecyclerView膨脹的按鈕,我得到意想不到的顏色,我還沒有在該應用的任何定義 -

enter image description here

(我加入的按鈕是RecyclerView的最後一個元素按此處的說明 - How to create RecyclerView with multiple view type?

的代碼以膨脹視圖 -

//ListAdapter constructer 
    public ListAdapter(Context context, List<postDetail> dataList1) { 
     this.context = context; 
     this.dataList = dataList1; 
     inflater = LayoutInflater.from(context); 
    } 



public ListViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     View convertView; 

     if(viewType == 0){ 
      convertView = inflater.inflate(R.layout.home_individual_post, parent, false); 
      ListViewHolder viewHolder = new ListViewHolder(convertView,0); 
      return viewHolder; 
     } else { 
      convertView = inflater.inflate(R.layout.prev_next,parent,false); 
      ListViewHolder viewHolder = new ListViewHolder(convertView,1); 
      return viewHolder; 
     } 


    } 


    //The button is in prev_next.xml 

prev_next.xml

<?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout android:id="@+id/next_prev_button" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginBottom="50dp" 
    android:gravity="center_vertical" 
    > 

    <Button 
     android:id="@+id/prev_button" 
     style="@style/MyButton" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="-4dp" 
     android:enabled="true" 

     android:textColor="#FFF" 
     android:text="Previous" 
     /> 

    <View 
     android:layout_width="0dp" 
     android:layout_height="0dp" 
     android:layout_weight="1" /> 

    <Button 
     android:id="@+id/next_button" 
     style="@style/MyButton" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 

     android:layout_marginRight="-4dp" 
     android:textColor="#FFF" 
     android:enabled="true" 
     android:text="Next" /> 

</LinearLayout> 

背景色[R的問題是在這兩種佈局 - prev_next.xml和home_individual_post.xml

我發現這個問題,並在回答中提到以下

+0

問題在於主題。可能的解決方案可以在這裏找到:http://stackoverflow.com/questions/26519979/coloring-buttons-in-android-with-material-design-and-appcompat如果問題仍然存在後,請讓我知道它並解決它在一起。 –

+0

我也嘗試了鏈接中的解決方案,當我應用橙色時,按鈕顯示爲深灰色 – PRYM

+0

您可以發佈代碼來擴大視圖嗎? –

回答

0

我發現了問題,不知道原因。但解決方案有效。

在創建我在做適配器 -

adapter = new ListAdapter(getApplicationContext(), Posts); 

,然後爲主題的問題在那裏,但是當我改變getApplicationContext()來getBaseContext(),它的工作 -

adapter = new ListAdapter(getBaseContext(), Posts); 

問題似乎是我從異步線程創建適配器

0

相同可否請您嘗試改變像

您通脹代碼
LayoutInflater.from(getContext()).inflate(R.layout.yourcell, parent/container, false); 
+0

inflater = LayoutInflater.from(getApplicationContext()); inflater.inflate(R.layout.home_individual_post,parent,false); 我正在這樣做,我認爲這與你的一樣,仍然是問題 – PRYM