2016-02-14 3 views
1

Я использую эффект пульсации в элементе просмотра ресайлера, но эффект не расширяется на всю ширину вида. Например, если TextView содержит только несколько символов, мультипликационный эффект применяются для этой ширины символов, но не на всю ширину элемента (ширина элемента = match_parent)Эффект пульсации вдоль ширины TextView

мой код Здесь `s:

MyFragment

<android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/recyclerView" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:layout_marginTop="5dp" 
android:padding="2dp" /> 

RecyclerView_item

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/layout" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:background="@drawable/item_background"> 

<TextView 
    android:id="@+id/item_question" 
    android:layout_width="match_parent" 
    android:layout_height="50dp" 
    android:gravity="center_vertical" 
    android:textSize="15sp" 
    android:textStyle="bold" /> 
</FrameLayout> 

item_background.xml

<ripple xmlns:android="http://schemas.android.com/apk/res/android" 
android:color="?android:colorControlHighlight"> 
<item android:drawable="@color/colorItem" /> 

Как я могу это исправить?

ответ

1

Если бы такая же проблема. Решено, изменив эти строки кода в RecyclerAdapter

@Override 
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     Context context = parent.getContext(); 
     View view = View.inflate(context, R.layout.simple_list_item_1, parent, null); 
     return new ViewHolder(view, viewType); 
    } 

в

@Override 
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     Context context = parent.getContext(); 
     View view = LayoutInflater.from(context).inflate(R.layout.simple_list_item_1, parent, false); 
     return new ViewHolder(view, viewType); 
    } 

Видимо накачивания без предоставления Inflater родитель вызывает различные LayoutParams.

Примечание:

View view = View.inflate(context, R.layout.simple_list_item_1, parent); 

также не работает, потому что элемент не должен еще быть добавлен к родителю, otherwhise вызывает ошибку: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.

Успехов!

Смежные вопросы