Articles of listview

Android中的Pinterest样式列表视图或gridview

我希望实现pinterest样式gridview(见图),我很难想出一个方法。 视图需要有3列(如pinterest),各个图像具有恒定宽度但高度可变。 它应该是可滚动的。 我也关注能够回收视图的问题,因为图像的数量可以很多(比如1000s) 我不知道如何在android中接近这个视图。 拉夫

使用ListView项内的按钮触发PopupMenu

菜单types 首先让我概述一下Contextual Menus和Popup Menus之间的区别(取自这里 ): PopupMenu是一个锚定到View的模式菜单 上下文菜单[我特别谈论浮动上下文菜单]提供了影响UI中特定项目或上下文框架的操作。 您可以为任何视图提供上下文菜单,但它们通常用于ListView,GridView或其他视图集合中的项目,用户可以在其中对每个项目执行直接操作。 作为指导,文档区分了它们的用途: – PopupMenu:“为与特定内容相关的操作提供溢出式菜单(例如Gmail的电子邮件标题……” – ContextualMenu:“对于影响所选内容的操作… “ 我正在追寻PopupMenu的视觉外观和互动。 我的设置(和目标) 我有一个ListView,其中每个项目右侧都有一个按钮。 ——————– | Item 1 [ ]| ——————– ——————– | Item … [ ]| ——————– ——————– | Item n [ ]| ——————– 保留每个ListItem的onItemClick ,我想利用该按钮触发PopupMenu 。 PopupMenu中的操作列在my_menu.xml ,因此菜单的每个实例之间的唯一区别是它被单击的项目。 我试过的 我已经尝试在我的ListAdapter覆盖getView() ,为每个按钮添加一个OnClickListener ,根据这篇文章 。 结果不一致; 并非所有的点击都在注册(可能是由于回收 – 我还没有尝试过这个修复 )但总的来说这种方法看起来很麻烦,考虑到为列表视图指定上下文菜单的简易性。 我还尝试添加一个上下文菜单,这很简单,只有当列表项被长按时才触发。 getView()方法是getView()方法还是更简单的方法? […]

如何将android布局animation仅应用于某个索引以上的孩子?

我有一个包含一系列笔记的ListView。 目前我使用布局animation在列表首次加载时从侧面滑动所有笔记; 这非常有效。 但是,我试图弄清楚如何仅应用布局animation来列出某个点以下的项目。 假设我删除了列表中的项目:我希望它下面的所有项目都转移到已删除的笔记的旧位置。 我试图find一种方法来通过子索引自定义animation延迟或插值器,但没有find适合此位置的任何内容。 有没有办法使用自定义布局animation(例如扩展LayoutAnimationController)或者我必须执行此低级别并单独为每个视图设置animation? 有什么建议么?

过滤后ListView不更新

我有一个ListView(带有setTextFilterEnabled(true))和一个自定义适配器(扩展ArrayAdapter),每当添加/插入新项目时,我都会从主UI线程更新。 一切都工作正常 – 新项目立即显示在列表中。 但是,当我尝试过滤列表时,这就停止了。 过滤工作,但我做了一次,我所有成功修改列表内容(添加,删除)的尝试都不再显示。 我使用Log来查看适配器的列表数据是否正确更新,确实如此,但它不再与显示的ListView同步。 是什么导致了这个以及如何最好地解决这个问题?

为什么适配器中的getCount被调用了这么多次?

我有一个自定义列表,只需几分钟即可显示。 当我试图检查问题的位置时,我看到即使我在列表中只有1个项目,方法getCount()被调用5次,getVIew()被调用一次,然后getCount()是被召唤更多时间。 整体getCount()被调用7次。 这有道理吗? 谢谢!

滚动列表视图时,Android ActionBar隐藏/显示

当用户向上/向下滚动列表视图时,我想隐藏/显示兼容性操作栏。 当操作栏消失时,列表也会占用操作栏的空间。 我遵循了一种方法,但它会产生一种丑陋的闪烁。 有没有人有这个问题的正确解决方案? 所需的行为类似于Google+应用中的隐藏/显示机制(我对页脚不感兴趣)。 我尝试过的内容如下: boolean tabletSize = getResources().getBoolean(R.bool.isTablet); if (!tabletSize) { final ActionBar actionBar = ((ActionBarActivity) getActivity()).getSupportActionBar(); lvNews.setOnScrollListener(new AbsListView.OnScrollListener() { private int mLastFirstVisibleItem; @Override public void onScrollStateChanged(AbsListView view, int scrollState) { } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { if (mLastFirstVisibleItem firstVisibleItem) { if (!actionBar.isShowing()) { actionBar.show(); } […]

android listviews:页眉和页脚视图

在我的ListActivity中,我需要页眉和页脚视图(在列表的顶部和底部)分别用作列表中的上一页和下一页按钮,因为我想一次只显示20个项目。 我通过以下方式设置我的标题和英尺视图: getListView().addHeaderView(myHeaderView); getListView().addFooterView(myFooterView); setListAdapter(adapter); 这工作正常,但我需要动态删除并添加这些页眉和页脚视图,因为我的列表中的某些页面可能没有下一页按钮或上一页按钮。 问题是,在调用setListAdapter之后,我无法调用addHeaderView或addFooterView。 有没有解决的办法?

如何在android listview中删除页脚的底部分隔符

就如此容易。 当然使用android:footerDividersEnabled =“false”不会对此工作,因为它会删除上部和下部分隔符。 我昨天提出了这个问题,不记得是谁试图回答它,但我不得不抹去它,因为巨魔开始降级问题因为它“不清楚”(如果你不知道什么是分隔符或页脚,或者底部,或什么是android,是的,它可以…) 无论如何,如果是这种情况让我们想象一个2项列表视图,我想给一个页脚空间,但没有页脚显示对应于底部分隔线的底线,但保持其他分隔线,也记住,只是如何删除,我可以使用2xviews并使用偶数作为建议的分隔符,但对我来说没有意义,只是添加额外的空视图+ 1px的页脚会更有效+ footerDividersEnabled就像我现在正在做的那样,但这只是一个简单的黑客攻击,它变得无法控制。 在页脚布局顶部添加一行也不起作用,因为当listView项目在背景中包含颜色或类似物时,您将有一个空格,因为您将看到分隔符所在的背景颜色。 有没有办法指定android不显示页脚的底部分隔符? 请尝试了解这不是同一个问题: 删除android ListView的底部分隔符 在没有阅读和降级的情况下进行巨魔之前。 @Kor让我们说这个页脚通常看起来像这样: 情况1: ListItemN 页脚 使用android:footerDividersEnabled =“false”看起来像这样: 案例2: ListItemN 页脚 我想要一种方法来像这样: 案例3: ListItemN 页脚 但只发现了上述的hacky方式。 我希望这有帮助,如果它不让我知道你还需要什么。

onClick侦听器到ListView图像 – Android

我有一个ListView ,右侧有一个图像。 我想通过单击ListView上的图像来执行onClick侦听器事件。 请参阅图片以供参考。 我知道基本的OnClick监听器实现,但这对我来说似乎有点棘手:P 忘了提一下,通过点击实际的ListView会拍摄一个新的活动,所以我需要保留两个模式。 listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView parent, View view, int position, long id) { eventsData.remove(id); cursor.requery(); } }); 上面的代码通过单击任何列表元素eventsData.remove(id);执行删除eventsData.remove(id); 是用于执行此任务的数据库助手。 就像我现在说的,我需要一个方法来执行相同的过程juts,点击图像,而不是整个列表元素,我希望list元素稍后再做一些其他操作。 我希望现在我清楚一点。 解决方案: 如果有人遇到同样的情况,那么这里是适配器的完整代码。 class CustomAdapter extends ArrayAdapter { CustomAdapter() { super(Activity.this, R.layout.row, R.id.label, items); } public View getView(final int position, View convertView, ViewGroup parent) { View row=super.getView(position, […]

使用Android应用程序的自定义适配器动态添加项目到列表视图

所以,现在我有一个自定义适配器类,它接收一个Locations数组并将它们添加到ListView。 这很好,花花公子,但我希望在初始化后将Locations添加到此listview。 例如,某人可以“添加位置”,并将其添加到此ListView。 这是我的主要活动: package com.example.listviewtest; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.ListView; public class MainActivity extends Activity { private ListView listView1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Location location_data[] = new Location[] { new Location(R.drawable.ic_launcher, “Location 1”, “Fruit!”, “2 miles”, “8-4 mon-fri\nclosed sun”), new Location(R.drawable.ic_launcher, “Location 2”, “Veggies!”, “2 miles”, “8-5”), […]