Articles of listview

如何在按钮单击时动态删除ListView中的项目?

我正在开发一个应用程序,需要从按钮事件上的ListView删除项目。 我试图从ArrayList删除它并创建整个新适配器并再次加载列表。 由于我的列表很大,这样做会影响我的应用程序的性能。 所以我想知道是否还有其他方法可以动态删除列表中的项目。 编辑:我试过你说的话。 当我删除一个项目时,它完美地工作,但随着我增加所选项目的数量,它开始给我IndexOutOfBoundException。 这是我的代码: public void onClick(View view) { SparseBooleanArray checkedPositions = new SparseBooleanArray(); checkedPositions.clear(); checkedPositions = lv.getCheckedItemPositions(); int size = checkedPositions.size(); if(size != 0) { for(int i = 0; i <= size; i++) { if(checkedPositions.valueAt(i)) { list.remove(notes.getItem(checkedPositions.keyAt(i))); notes.notifyDataSetChanged(); } } } else{} } 这里, notes是对SimpleAdapter对象的引用。

ListView与LinearLayout

我正在写一个水平的电视视图,类似于你知道的tivo系统和类似的。 对于每个频道,在接下来的6个小时左右有一行节目,其宽度与播放时间成正比。 我的想法是为每一行编写一个自定义小部件,并将它们堆叠在一起。 这应该允许我以递增方式加载数据,而不是使用一个大的自定义视图。 但是,我仍然需要页面顶部的向前/向后按钮,以便在单击时更新所有行。 现在我不确定是否应该将这些视图放在ListView或LinearLayout中。 我收集了以下优点和缺点: 列表显示 优点 内存高效 – 重新隐藏视图 似乎所有人都可以在Android社区中使用它。 在更新行时可能更容易使它变得懒惰,因此需要更少的CPU。 缺点 矫枉过正 – 我不会使用它提供的大部分function 附加clickListeners可能稍微困难一些。 的LinearLayout 优点 简单易用。 你有什么期望的。 缺点 我还没有看到它用于任何长列表。 也许它慢一点? ListView的“似乎被所有人使用”的论点还包括“Master”Twitter应用程序,谷歌用它来展示“良好的Android设计”。 它们似乎也没有使用它的大部分function。 你有这方面的工作经验吗? 在阅读文档时,我是否遗漏了任何建议?

Android布局以RelativeLayout为中心,用于自定义ListView

我真的把头发拉过这一头。 一些背景。 我有一个项目列表,旁边都有checkbox。 取消选中checkbox后,会出现一个按钮,允许您从列表中删除该项目。 这看起来似乎倒退,但我们只希望“选定”的项目有资格进行进一步处理等。这是我的布局: 为了挽救我的生命,我不能让3个项目垂直居中。 layout_gravity , gravity , layout_centerVertical ,它都layout_gravity 。 我敢肯定,我的问题是在某个地方翻转的一个小小的设置,但我真的在这方面的斗智斗勇。 编辑:我知道textview是“fill_vertical”,这是我尝试的一些随机的东西。

是否有可能从Android中的适配器引用ListView?

是否有可能从Android中的适配器引用ListView而不将其作为构造函数的parameter passing?

wrap_content用于listview的宽度

有没有办法让ListView与等于最长的行? 为ListView的宽度设置wrap_content无效。 ListView水平覆盖整个屏幕。 这是活动布局 这是行xml 谢谢Gratzi

如何在ListView的末尾添加空格?

我在ListView中有许多元素可以滚动屏幕。 我希望View的末尾有空格。 也就是说,用户应该能够滚动经过最后一个元素,使得最后一个元素位于视口的中间。 我可以使用OverScroller ,但我认为这只会使View具有像iPhone上经常看到的那样的弹性效果。 有什么我可能会忽略的吗? 滚动到按钮的屏幕看起来应该是这样的:

列表视图对齐项目

我正在使用ListView创建图片列表,照片的大小可以在屏幕上显示2到3张照片。 我遇到的问题是,当用户停止滚动时,我想要将可见列表的第一项捕捉到屏幕顶部,例如,如果滚动结束并显示第一张图片的一小部分,我们向下滚动列表以便图片始终完全显示,如果显示的是大部分图片,我们将列表向上滚动,以便下一张图片完全可见。 有没有办法在listview中实现这个?

如何在同一列表视图中实现ontouch和onfling?

我有一个listview并实现onclick和onfling.problem是当我做fling(从左向右滑动),listview的onclick事件也正在执行。如何解决这个问题? 如何区分listview中的触摸(点击)和投掷(滑动)? listClickListener = new OnItemClickListener() { public void onItemClick(AdapterView parent, View v,int position, long id) { //Job of Onclick Listener } }; mContactList.setOnItemClickListener(listClickListener); mContactList.setAdapter(adapter); // Gesture detection gestureDetector = new GestureDetector(new MyGestureDetector(prosNos)); gestureListener = new View.OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { if (gestureDetector.onTouchEvent(event)) { return true; } return false; } }; […]

使用反向无限滚动添加到ListView时保持滚动位置

我正在构建类似聊天的Android应用程序,类似于环聊。 为此,我使用了一个垂直的ListView,其中stackFromBottom=true , transcriptMode=”normal” 。 该列表从较旧的消息(顶部)到较年轻的消息(底部)排序。 在正常状态下,ListView会滚动到底部,显示最年轻的消息。 一旦用户滚动到列表的顶部,ListView使用反向无限滚动适配器来加载更多(较旧的)消息。 加载旧邮件后,它们将添加到列表顶部。 所需的行为是,当旧消息添加到其顶部时,ListView将其滚动位置保持在列表的底部。 也就是说,当旧消息添加到顶部时,滚动视图应显示在添加旧消息之前显示的相同消息。 不幸的是,这不起作用。 ListView不是将滚动位置保持在底部,而是将滚动位置保持在列表顶部 。 也就是说,在将较旧的消息添加到列表之后,该列表显示最顶层(即最旧的)消息。 有一种简单的方法可以告诉ListView在将新项目添加到顶部时将其滚动位置保持在底部而不是顶部吗? 更新 出于演示目的,我尽可能地减少了用例和代码。 以下示例创建一个简单的字符串数组列表。 单击某个项目将在列表顶部添加另一个项目。 长按单击某个项目将在列表底部添加另一个项目。 在列表底部添加项目时,一切正常(长按)。 在列表顶部添加项目(简单点击),则有3种情况: 如果列表滚动到底部,那么一切正常。 将项目添加到顶部后,列表仍会滚动到底部。 如果列表未滚动到底部(也不会滚动到顶部),则列表将保持其滚动y位置(从顶部开始)。 这使列表看起来“跳”了一个项目。 在这种情况下,我希望列表不要“跳起来”,即我希望它从底部保持其滚动y位置。 如果列表滚动到顶部,则情况与情况2相同。首选行为与情况2相同。 (最后两个案例实际上是相同的。我将它们分开,因为在案例2中可以更好地certificate问题。) 码 public class MyListActivity extends Activity { int topIndex = 1; int bottomIndex = 20; protected final void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.my_list_activity); final ListView […]

具有滚动速度控制的无限自动滚动列表视图

我一直在研究ListView想法,它在没有用户交互的情况下自动滚动,并且使用android API(例如smoothScrollToPositionFromTop )绝对可行。 我已经实现了ListView BaseAdapter ,它永远(几乎)加载项目以获得一个不停止自我重复的ListView 。 我想在这里实现的是让我的ListView以一定的速度(慢速)永远滚动,以便在向下滚动时使项目清晰可读,我不确定ListView是否是我最好的选择。 下面是我要做的事情的片段。 结果很好但不太顺利,我觉得ListView闪烁。 我需要提高平滑度,效率和控制速度 new Thread(new Runnable() { @Override public void run() { int listViewSize = mListView.getAdapter().getCount(); for (int index = 0; index < listViewSize ; index++) { mListView.smoothScrollToPositionFromTop(mListViewA.getLastVisiblePosition() + 100, 0, 6000); try { // it helps scrolling to stay smooth as possible (by experiment) Thread.sleep(60); } […]