0

Я использую библиотеку com.rockerhieu.emojicon, которая отлично работает, но при использовании в recyclerview с длинным текстом прокрутка замедляется. По этой причине я хотел бы использовать EmojiconTextView только тогда, когда нужно показать emoji. Итак, я хотел бы иметь элемент TextView на моем ресурсе xml и преобразовывать его в EmojiconTextView программно, когда это необходимо. Есть ли способ достичь этого? Я думал об использовании ViewStub, но я не нашел способ раздуть его элементом TextView/EmojiconTextView.Изменить класс вида программно

Заранее спасибо.

ответ

0

Вместо декларативного способа создания пользовательского интерфейса с использованием XML попробуйте создать свой пользовательский интерфейс программным путем.

Учитывая вы LinerLayout определены в вашем XML:

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

Вы можете добавить свой EmojiconTextView и TextView программно:

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

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