2016-03-25 13 views
0

Ich arbeite an einem Widget und ich habe ein Problem mit der Ansicht in meine RemoteView.RemoteViews und addView (horizontal): nur das erste Element (Ansicht) zeigt

Nur der erste hinzugefügte Eintrag (Ansicht) wird angezeigt.

PS: Ich muss Ansichten horizontal hinzufügen.

Dies ist meine Schleife für das Hinzufügen von Ansichten in meine RemoteViews:

RemoteViews mainView = new RemoteViews(getPackageName(), R.layout.widget); 
mainView.removeAllViews(R.id.view_container); 
for (int i = 0; i < Constant.max; i++) { 
    RemoteViews newView = new RemoteViews(getPackageName(), R.layout.item); 
    newView.setImageViewBitmap(R.id.logo, Constant.data[i].getLogo()); 
    mainView.addView(R.id.view_container, newView); 
    Log.e("Item added : ", Constant.data[i].getName()); 
} 

widget.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center"> 

    <LinearLayout 
     android:orientation="horizontal" 
     android:id="@+id/view_container" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"> 

    </LinearLayout> 

</RelativeLayout> 

item.xml

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

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="@dimen/margin_between" 
     android:layout_marginRight="@dimen/margin_between" 
     android:background="#F0F0F0" 
     android:orientation="vertical" 
     android:padding="2dp"> 

     <ImageView 
      android:id="@+id/logo" 
      android:layout_width="48dp" 
      android:layout_height="48dp" 
      android:layout_gravity="center" 
      android:src="@drawable/ic_android_black_24dp" /> 

    </LinearLayout> 

</LinearLayout> 

Wenn Sie irgendwelche Idee zu löse dieses Problem .. danke im Voraus.

Antwort

0

Versuchen Sie, die Breite des übergeordneten Layouts in item.xml zu wrap_content zu ändern.

Weil mit fill_parent wird es die gesamte Breite Ihres Behälters() abdecken und dort wird kein verfügbarer Platz für die anderen Elemente sein.

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent"> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="@dimen/margin_between" 
     android:layout_marginRight="@dimen/margin_between" 
     android:background="#F0F0F0" 
     android:orientation="vertical" 
     android:padding="2dp"> 

     <ImageView 
      android:id="@+id/logo" 
      android:layout_width="48dp" 
      android:layout_height="48dp" 
      android:layout_gravity="center" 
      android:src="@drawable/ic_android_black_24dp" /> 

    </LinearLayout> 

</LinearLayout> 

PS: Vielleicht ist es besser, einen HorizontalScrollView zu verwenden, wenn Sie viele Bilder haben