2016-09-28 3 views
0

J'ai donc un widget qui a une liste avec un textview à l'intérieur de chaque élément. Je veux que certains éléments aient du texte en gras et d'autres non.Widget liste Android Taille du texte/Apparence

En ce moment, c'est ce que j'ai dans mon ListProvider:

@Override 
    public RemoteViews getViewAt(int position) { 
     RemoteViews remoteView = new RemoteViews(
       context.getPackageName(), R.layout.widget_list_item); 

     ListObject listObject = listObjectList.get(position); 

     //get whether item is a item or title 
     if(listObject.getClass().equals(ListItem.class)) { 
      //list item 
      ListItem listItem = (ListItem) listObject; 
      remoteView.setTextViewText(R.id.text, listItem.text); 
     }else{ 
      //list title 
      ListTitle listTitle = (ListTitle) listObject; 
      remoteView.setTextViewText(R.id.title, listTitle.title); 
     } 

     return remoteView; 
    } 

widget_list_item.xml:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal"> 

    <TextView 
     android:id="@+id/text" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:textColor="@color/widgetTextColor" 
     android:gravity="center" 
     android:layout_marginBottom="@dimen/widget_item_padding" 
     android:layout_marginTop="@dimen/widget_item_padding" /> 

    <TextView 
     android:id="@+id/title" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:textColor="@color/widgetTextColor" 
     android:gravity="center" 
     android:layout_marginBottom="@dimen/widget_item_padding" 
     android:layout_marginTop="@dimen/widget_item_padding" 
     android:textStyle="bold" 
     android:textAllCaps="true" /> 
</RelativeLayout> 

Il fonctionne, mais la liste est tout embrouillé et foiré lors du défilement en raison de la deux textviews dans le widget_list_item (texte, titre). Existe-t-il un moyen simple de modifier l'apparence/l'apparence du texte d'un élément spécifique (et non sa taille)?

Merci!

+0

Peut-être que [ce] (http://stackoverflow.com/questions/7916834/android-adding-listview-sub-item-text) est ce que vous cherchez? –

+0

Non, j'utilise un widget listview. Cela fonctionne différemment. – Jared

Répondre

0

Correction de moi-même! Super simple! Je viens de définir l'affichage du texte inutilisé pour le texte vide.

if(listObject.getClass().equals(ListItem.class)) { 
      //list item 
      ListItem listItem = (ListItem) listObject; 
      remoteView.setTextViewText(R.id.title, ""); 
      remoteView.setTextViewText(R.id.text, listItem.text); 
     }else{ 
      //list title 
      ListTitle listTitle = (ListTitle) listObject; 
      remoteView.setTextViewText(R.id.text, ""); 
      remoteView.setTextViewText(R.id.title, listTitle.title); 
     }