listview是默认不显示的,当点击父listview去张开子listview,父listview应该会再次刷新,但子listview展开是可以的,然后下一次更新数据源的时候子listview又会自动关闭 ,我猜应该是在刷新子listview的时候,父listview先更新完成,子listview的高度测量就没有对! 下面是我的源码 listview 嵌套listview都有个高度测量的问题,在更新的时候动态更新子listview就,下面是布局源码 <? "@+id/listView1" android:scrollbars="none" android:layout_width="match_parent" android:layout_height= android.widget.LinearLayout; import android.widget.ListAdapter; import android.widget.ListView; import
ListView是Android中最常用的控件之一,几乎所有的应用程序都会用到它,因此学会运用它很重要。下面我们从一个例子中去理解ListView的用法,先看一下我们这个例子的项目结构图 ? android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ListView ListView listView=findViewById(R.id.list_view); listView.setAdapter(adapter); match_parent" android:layout_height="match_parent" > <ListView android:id="@+id/ 总结: 使用ListView,关键是在适配器与适配器的类型上,这两个方面掌握了,基本就可以定制出属于自己的ListView界面了。
热卖云产品新年特惠,2核2G轻量应用服务器9元/月起,更多上云必备产品助力您轻松上云
安卓listview使用 MainActivity public class MainActivity extends AppCompatActivity { private ListView > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com " android:layout_height="match_parent" tools:context=".MainActivity" android:orientation= --divider属性设置item间距--> <ListView android:id="@+id/listview" android:layout_width= "match_parent" android:layout_height="match_parent" android:dividerHeight="10dp"></ListView
" android:layout_width="match_parent" android:layout_height="match_parent"> <ListView android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.ListView; public class _1, data); //获取ListView对象 ListView listView = (ListView)findViewById(R.id.list_item1) ; //将适配器关联到ListView listView.setAdapter(adapter); } } ListView显示的数据一般都是从数据库中拿到的数据 " android:layout_width="match_parent" android:layout_height="match_parent"> <ListView
Android: ListView排序 ListView通过适配器得到内容数据,可以对数据list先排序再提供给ListView: private List<Map<String, Object>>
ListView是比较常用的控件之一,在这里总结一下,方便查阅。 程序效果是实现一个ListView,ListView里面有标题、内容和图片,并加入单击和长按响应。 " android:layout_height="fill_parent" > <ListView android:id="@+id/ListView" android :layout_width="wrap_content" android:layout_height="wrap_content" /></LinearLayout> 2.定义ListView ;import android.widget.AdapterView;import android.widget.ListView;import android.widget.SimpleAdapter ListView list = (ListView) findViewById(R.id.ListView); // 生成动态数组,加入数据 ArrayList<HashMap<String,
</RelativeLayout> private ListView listView; // 数据 private String[] data = { "Apple", "Banana", "Orange savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_test); listView = (ListView) findViewById(R.id.list_view); // 适配器 ArrayAdapter<String> adapter = new ArrayAdapter <String>(ActivityTest.this, android.R.layout.simple_list_item_1, data); listView.setAdapter(adapter
一:ListView 最简单的用法 ListView最简单的用法无非就是用它写一个最基本的列表界面,展示的数据也就是我们最基本和常见的单条数据,一步一步的走下去: ListView 方法创建好数据源之后,用下面的方法: ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item 经过上面两步的优化,这个ListView的运行效率已经非常不错了! 三: ListView的点击事件 这个就像你用了TableView的时候,你写了那么多cell肯定是能点击的,我们就说说ListView的点击事件: image.png 我们这里是简单的写了它的点击事件 ,让它弹出一个Toast, 当然这个Toast前面我们也是说过的,我们使用 setOnItemClickListener 为ListView 注册一个监听器,当用户点击了ListView当中的任何一个子项时候
前言 在android开发中ListView是比较常用的组件,它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示。 2.listView的使用 listView的布局上比较简单,只需要在其布局文件中写上如下代码即可: <ListView android:id="@+id/listView" style="@style/listviewStyle" android:longClickable="true" android:clickable="true"></ListView> 这样就创建了一个空的列表,然后在.java文件中再填充数据,所以id是一定要设的。 android:layout_marginLeft="@dimen/margins" android:scaleType="centerInside" android
<ListView android:layout_width="fill_parent" android:layout_height="wrap_content" android:id= "@+id/MyListView"> </ListView> </LinearLayout> list_items.xml [java] view plain ; import android.os.Bundle; import android.widget.ListView; public class MainActivity { super.onCreate(savedInstanceState); setContentView(R.layout.main); ListView list = (ListView) findViewById(R.id.MyListView); setData(); // 设置数据 // 配置适配器
由于数据较少,如果listview滑动感觉不怎么美观,于是想要Listview禁止滑动,其实也很简单,只要拦截listview的Ontouch事件就可以了具体代码如下:`ListView lv = (ListView ) findViewById(R.id.listView); lv.setOnTouchListener(new OnTouchListener() { @Override default: break; } return true; } });` 这样处理就能禁止listview
ListView优化一直是一个老生常谈的问题,不管是面试还是平常的开发中,ListView永远不会被忽略掉,那么这篇文章我们来看看如何最大化的优化ListView的性能。 animateCache: ListView默认开启了animateCache,这会消耗大量的内存,因此会频繁调用GC,我们可以手动将它关闭掉,所以我们代码可以这么写: <ListView android :id="@android:id/list" android:layout_width="match_parent" android:layout_height="wrap_content" android :divider="@color/list_background_color" android:dividerHeight="0dp" android:listSelector="#00000000" android:scrollingCache="false" android:animationCache="false" android:smoothScrollbar="true" /> 5.减少item
大致思想 private List<ZJLoction> searchListData = new ArrayList<ZJLoction>(); private ListView searchListView 是连接数据源和展示的桥梁 可以这样比喻 searchListData是货源 searchListView是货仓 searchAdapter是拉货的车 要建立之间的关系就要做如下操作 searchListView = (ListView
listview添加headview后的点击事件 1、头部view:设置view的点击时间,用于屏蔽listview的item的点击事件 ;import android.os.Bundle;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener ;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.Button ;import android.widget.ListView;import android.widget.SimpleAdapter;import android.widget.Toast;public (R.id.listView1); // 头部view:设置view的点击时间,用于屏蔽listview的item的点击事件 View headerView = getLayoutInflater
ListView是我们在开发Android程序时用得比较多的一种widget,通常用来展示多条数据,这里,我对ListView的一些功能点作一个简单介绍。 1. the Android UI toolkit. Divider 通过android:divider XML属性来指定。 Divider可以颜色或者Drawable,当绘制内容时,ListView会自动地计算出divider的位置。 解决办法: 不要让ListView中的Item内部的View获得焦点就OK了,这样做: android:descendantFocusability=”blocksDescendants” ListView不要做的事 1)android:layout_height=”warp_content”?
直接调用listview.setOnItemLongClickListener长按事件 listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener DialogInterface dialog, int which) { boolean isSuccess; // 删除listView
listBean3 = new ListBean(R.mipmap.photo, "后天", "内容内容", "删除"); list.add(listBean3); final ListView listView = findViewById(R.id.list); final MyAdapter adapter = new MyAdapter(ListBaseAdapterActivity.this , list); // 设置分割线 listView.setDivider(new ColorDrawable(Color.RED)); // 设置分割线的宽度 listView.setDividerHeight(5); listView.setAdapter(adapter); } } demo 地址
总结listview: 1、创建-->高度match 2、创建-->行布局 3、找到listview控件 4、初始化数据 5、创建适配器对象 baseAdapter getview :决定了显示的样式以及内容 查找当前布局对象里面的控件 行布局对象.findviewById() getCount :决定listview的显示行数 6、设置适配器 listview优化: 1、用完全消失的布局对象去替代即将出现的那个布局对象
要使listView的列表项发生改变时及时显示在UI中,就要更新listView的数据。 两种方法: 方法一: 数据直接在adapter上修改,adapter.add().等方法 方法二: 本质上是listview绑定Adapter,Adapter关联List,因此List变化后导致 Adapter同步变化;再通过调用adapter.notifyDataSetChanged();方法使得listview界面自动更新。 R.layout.xmlforitem, strName);//适配器,其中 R.layout.xmlforitem是列表中每一项的布局,可以用默认的也可自建,strName则是将数据源绑定到适配器 3、listView.setAdapter ();//调用notifyDataSetChanged();更新适配器,ListView会自动刷新,notifyDataSetChanged()方法可能需要在UI线程中调用,建议自行测试; 6、数据增加可能引起内存变化
扫码关注腾讯云开发者
领取腾讯云代金券