我已经看过几篇有关此事的帖子,但没有找到我遇到的问题的答案。我正在使用RelativeLayout视图动态填充主屏幕小部件中的LinearLayout,但只显示第一个子视图。调试显示正在创建和添加多个视图,但它们不会出现。这是代码:
RemoteViews views = new RemoteViews(getPackageName(), R.layout.widget);
Cursor statuses_styles = getContentResolver().query(Uri.withAppendedPath(Statuses_styles.CONTENT_URI, widget), new String[]{...}, null, null, Statuses_styles.CREATED + " DESC LIMIT " + page + ",-1");
Log.d(TAG,"statuses count:"+statuses_styles.getCount());
if (statuses_styles.moveToFirst()) {
int count_status = 0;
views.removeAllViews(R.id.messages);
while (!statuses_styles.isAfterLast() && (count_status < 16)) {
RemoteViews itemView;
itemView = new RemoteViews(getPackageName(), R.layout.widget_item);
itemView.setTextViewText(R.id.message, statuses_styles.getString(1));
itemView.setFloat(R.id.message, "setTextSize", friend_textsize);
Log.d(TAG,"add view:"+statuses_styles.getString(1));
views.addView(R.id.messages, itemView);
count_status++;
statuses_styles.moveToNext();
}
}
statuses_styles.close();
mgr.updateAppWidget(appWidgetId, views);
小部件只是一个ID为“messages”的LinearLayout。它被设置为fill_parent的宽度和高度,并且orienation设置为vertical。
窗口小部件项是包含一些文本和图像视图的相对布局。
小部件是4x4。
为什么没有其他观点出现的任何想法?
谢谢!
答案 0 :(得分:1)
正在添加的视图的子项具有属性layout_alignParentBottom =“true”,这导致它填充整个父项,阻止任何其他子项。删除该属性允许其他孩子出现。
答案 1 :(得分:0)
如果有人正在读这个并且面临将一堆视图膨胀成线性布局的问题,这是xml在其他地方的一部分 只看到第一个膨胀的布局,但不知道为什么。
我的错是,我创建了一个扩展LinearLayout的View类,但是 我没有将方向设置为xml中的垂直方向 实际上使用了视图 - 所以添加的视图,但是horiztonal。
希望,这对任何人都有帮助。