我的UI中有许多垂直堆叠的面板.每个面板都包含一个ListVIEw.基于用户交互,ListVIEw中的项目数将更新.
我的问题是,如果我增加在ListVIEw中显示的项目数,则包含面板将不会扩展以显示它们.相反,我的ListVIEw只是被淡化为黑色而被切断.我正在以编程方式创建这些堆叠的面板中的每一个-这是创建功能的主体:
linearLayout containingPanel = new linearLayout(TestActivity.this);containingPanel.setorIEntation(linearLayout.VERTICAL);// create TitleTextVIEw TitleText = new TextVIEw(TestActivity.this);TitleText.setText("a Title");TitleText.setGravity(Gravity.CENTER);TitleText.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));// create dynamic List vIEw of costs ListVIEw dynamicContentListVIEw = new ListVIEw(TestActivity.this);dynamicContentListVIEw.setAdapter(new MyDynamicAdapter());linearLayout.LayoutParams params = new linearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);params.weight = 1;dynamicContentListVIEw.setLayoutParams(params);// build up GUIcontainingPanel.addVIEw(TitleText); containingPanel.addVIEw(dynamicContentListVIEw); return containingPanel;
我认为在ListVIEw上设置权重应该足够,但事实并非如此.所有GUI更新都可以正常工作-新项目会自动添加到支持适配器的数据中,并且ListVIEw会正确更新自身.但是,当我添加三个或四个新项目后,containingPanel拒绝更新自身,并且新项目被融合了.
解决方法:
(您可以在ScrollVIEw内添加一个ListVIEw,但要花些功夫(因为它们都是Scrollable组件- *** 作系统如何知道您要滚动的组件?).您需要在isScrollContainer =“ false”上添加您的ListVIEw.)
<ListVIEw androID:ID="@+ID/List" androID:layout_wIDth="match_parent" androID:layout_height="wrap_contents" androID:isScrollContainer="false"/>
ListVIEw的全部要点是它的高度取决于页面的布局.仅当其子项的组合高度超过显示它所需的面积时,它才可滚动.
听起来您真正想要的是类似于由Adapter支持的linearLayout的东西,网络上有几种实现方式,或者您可以创建自己的实现.
但是,您可以通过将ListVIEw的Height设置为:ListCount * itemHeight,以编程方式动态调整ListVIEw的大小,从而改变ListVIEw的行为.这将具有持续扩展ListVIEw的效果.
您可能会发现,在开发UI设计时,您将不再需要这样的组件.
总结以上是内存溢出为你收集整理的android-ListView内容在适配器更新后被截断全部内容,希望文章能够帮你解决android-ListView内容在适配器更新后被截断所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)