RemoteViews 和 addView(水平):只显示第一个项目(视图)

RemoteViews and addView (horizontal) : only the first item (view) is showing

我正在开发一个小部件,但在将视图添加到我的 RemoteView 时遇到了问题。

仅显示添加的第一个项目(视图)。

PS : 我需要横向添加视图

这是我将视图添加到 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>

如果您有任何解决此问题的想法..在此先感谢。

尝试将 item.xml 中父布局的宽度更改为 wrap_content

因为 fill_parent 它将覆盖容器的整个宽度 (view_container),并且不会有可用的 space 用于其他项目。

<?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: 如果你有很多图片

,也许最好使用HorizontalScrollView