2017-01-01 8 views
0

私はRecyclerView(ytRC)を持ち、そのRecyclerView内で、各要素にサムネイルと、アダプタを介してRecyclerViewの内部に入る対応するタイトル(ResultsAdapter)タイトルをカードビューに追加します。私は十分に簡単な単一の行をcardviewで私のタイトルを作りたいです。しかし、一部のタイトルは長すぎるため、途切れることがあります。私はマーキーのテキストビューがこれを修正する素晴らしい方法だと思ったので、私は解決策を探しに行った。android - 必要に応じて各RecyclerView要素内のTextViewをスクロールする

thisthisのような結果がありました。しかし、これらのソリューションは部分的にしか機能しませんでした。つまり、RecyclerViewの50個の要素のうち1個だけが実際にスクロールして、その長さによってスクロールする必要があります。私はこれがResultsAdapteronBindViewHolder()メソッドのtitle.setEnabled(true);title.requestFocus();と呼んでいて、RecyclerViewの特定のビューのみが生成されていたときに、テキストがmarqueedになっていたからです。

私が試してみたかった別の解決策は、カスタムのTextViewクラスScrollingTextView作成することでした。

import android.content.Context; 
import android.support.annotation.Nullable; 
import android.util.AttributeSet; 


public class ScrollingTextView extends android.support.v7.widget.AppCompatTextView { 
public ScrollingTextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { 
    super(context, attrs, defStyleAttr); 
    init(); 
} 

public ScrollingTextView(Context context, AttributeSet attrs) { 
    super(context, attrs); 
    init(); 
} 

private void init() { 
    //set scrolling 
    setSelected(true); 
    requestFocus(); 
} 
} 

をしかし、そのクラスを使用すると、同じ結果が得られます。だから、あまりにも多くのテキストを持つ各RecyclerView要素でテキストビューをマーキーする方法は?

答えて

1

マーキーこれはaoutomaticallyのTextViewのテキスト長いをスクロールします

<TextView 
    android:text="lunch 20.00 | Dinner 60.00 | Travel 60.00 | Doctor 5000.00 | lunch 20.00 | Dinner 60.00 | Travel 60.00 | Doctor 5000.00" 
    android:id="@+id/TextView02" 
    android:layout_width="200dip" 
    android:layout_height="wrap_content" 
    android:marqueeRepeatLimit="marquee_forever" 
    android:ellipsize="marquee" 
    android:singleLine="true" 
    android:focusable="true" 
    android:inputType="text" 
    android:maxLines="1"> 
</TextView> 

、プログラム

holder.textView.setSelected(true); 

に長いのTextViewをスクロールするために簡単です。

+0

ありがとうございました!私は他の答えが私の正義をしなかった理由を知らない。とにかく、実際には必要ない 'inputType'属性が含まれています。 – rakeshdas

関連する問題