0

私はcom.rockerhieu.emojiconライブラリを使用していますが、これはうまくいきますが、長いテキストのあるrecyclerviewで使用するとスクロールが遅くなります。そのため、Emojiを表示する必要があるときにEmojiconTextViewを使用したいと思います。ですから、私はxmlリソース上にTextView要素を持っていて、EmojiconTextViewに必要なときにプログラムで変換したいと思います。それを達成する方法はありますか?私はViewStubの使用について考えましたが、TextView/EmojiconTextView要素でそれを膨らませる方法が見つかりませんでした。プログラムでビュークラスを変更する

ありがとうございます。

答えて

0

XMLを使用してUIを宣言的に作成する代わりに、プログラムでUIを作成してみてください。

<LinearLayout 
    android:id="@+id/linearMain" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 
</LinearLayout> 

あなたは、その後、プログラムであなたのEmojiconTextViewTextViewを追加することができます:あなたはXMLで定義されたLinerLayoutを持って考えると

final LinearLayout lm = (LinearLayout) findViewById(R.id.linearMain); 

LayoutParams lpView = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 

if (mustShowEmoji) { 
    EmojiconTextView etv = new EmojiconTextView(this); 
    etv.setLayoutParams(lpView); 
    etv.setText("TextView containing emoji"); 
    lm.addView(etv);   
} else { 
    TextView tv = new TextView(this); 
    tv.setLayoutParams(lpView); 
    tv.setText("TextView"); 
    lm .addView(tv);   
}  
+0

は、あなたの答えをいただき、ありがとうございます。私はそれをやろうと考えていましたが、ビューのツリーに余分なビューグループを追加することになりました。私はそれを避けたいと思います。しかし、今はこれが最善の解決策であるようです。どうもありがとう – FVod

関連する問題