RemoteViews 和 addView(水平):仅显示第一项(视图)
Posted
技术标签:
【中文标题】RemoteViews 和 addView(水平):仅显示第一项(视图)【英文标题】:RemoteViews and addView (horizontal) : only the first item (view) is showing 【发布时间】:2016-07-13 07:19:39 【问题描述】:我正在处理一个小部件,但在将视图添加到我的 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_
android:layout_
android:gravity="center">
<LinearLayout
android:orientation="horizontal"
android:id="@+id/view_container"
android:layout_
android:layout_>
</LinearLayout>
</RelativeLayout>
item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_>
<LinearLayout
android:layout_
android:layout_
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_
android:layout_
android:layout_gravity="center"
android:src="@drawable/ic_android_black_24dp" />
</LinearLayout>
</LinearLayout>
如果您有任何解决此问题的想法.. 提前致谢。
【问题讨论】:
【参考方案1】:尝试将 item.xml 中父布局的宽度更改为 wrap_content
。
因为fill_parent
它将覆盖容器的整个宽度 (view_container
),并且不会有可用空间用于其他项目。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_>
<LinearLayout
android:layout_
android:layout_
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_
android:layout_
android:layout_gravity="center"
android:src="@drawable/ic_android_black_24dp" />
</LinearLayout>
</LinearLayout>
PS:如果你有很多图片,最好使用HorizontalScrollView
【讨论】:
以上是关于RemoteViews 和 addView(水平):仅显示第一项(视图)的主要内容,如果未能解决你的问题,请参考以下文章
广播接收器未接收到意图 (RemoteViews / PendingIntent)