android瀑布流布局代码(css瀑布流布局代码)
admin 发布:2022-12-19 19:05 138
本篇文章给大家谈谈android瀑布流布局代码,以及css瀑布流布局代码对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、Android Studio也可在Activity中编写布局代码,这些代码放在哪个位置?
- 2、android listview 每行中 有两列。 第二列有两行的效果是怎么做的? 下图给图~
- 3、用css3的 clomus 布局 怎么写瀑布流
- 4、android瀑布流怎么显示
- 5、Android控件RecyclerView和ListView的异同
- 6、RecyclerView
Android Studio也可在Activity中编写布局代码,这些代码放在哪个位置?
功能
可以让你在Activity/Fragment中自动生成findViewById等布局相关初始化代码
或者在Adapter中自动生成ViewHolder代码
安装
方式一. 下载项目中的jar包,通过本地disk方式导入
方式二. 在Android Studio的插件中心搜索LayoutCreator下载安装
用法
新建好Activity后自行编写onCreate并setContentView设置对应布局
选中layout布局,快捷键alt+Insert,然后选择LayoutCreator或者选中布局后在菜单栏中的Code中选择LayoutCreator
插件会自动遍历布局列出所有带id的控件,你可以在弹出的对话框中选择需要自动生成的控件
弹出的对话框中还可以勾选是否生成ViewHolder
选择好后Confirm确认即可
android listview 每行中 有两列。 第二列有两行的效果是怎么做的? 下图给图~
可以用“瀑布流”实现。
github上有很多:;q=android+waterfalltype=Repositoriesref=searchresults
用css3的 clomus 布局 怎么写瀑布流
首先,css3的布局主要用到下面三个属性
column-count
column-gap
column-rule
其次,在兼容column的浏览器中可以实现瀑布流,代码如下
.demo{
width: 500px;
height: auto;
-webkit-column-count:3;
-moz-column-count:3;
column-count:3;
-webkit-column-gap:10px;
-moz-column-gap:10px;
column-gap:10px;
column-rule:3px outset #ff0000;
border: 1px solid #ddd;
}
.demo div{
background: #336699;
margin-bottom: 4px;
color: #eee;
padding: 10px;
}
div class="demo"
div1这是测试用的文字,测试能不能实现瀑布流。/div
div2这是测试用的文字,测试能不能实现瀑布流。/div
div3这是测试用的文字,测试能不能实现瀑布流。/div
div4这是测试用的文字,测试能不能实现瀑布流。/div
div5这是测试用的文字,测试能不能实现瀑布流。/div
div6这是测试用的文字,测试能不能实现瀑布流。/div
div7这是测试用的文字,测试能不能实现瀑布流。/div
div8这是测试用的文字,测试能不能实现瀑布流。/div
div9这是测试用的文字,测试能不能实现瀑布流。/div
div11这是测试用的文字,测试能不能实现瀑布流。/div
div12这是测试用的文字,测试能不能实现瀑布流。/div
div13这是测试用的文字,测试能不能实现瀑布流。/div
div14这是测试用的文字,测试能不能实现瀑布流。/div
div15这是测试用的文字,测试能不能实现瀑布流。/div
div16这是测试用的文字,测试能不能实现瀑布流。/div
div17这是测试用的文字,测试能不能实现瀑布流。/div
div18这是测试用的文字,测试能不能实现瀑布流。/div
div19这是测试用的文字,测试能不能实现瀑布流。/div
/div
/div
android瀑布流怎么显示
今天介绍一个瀑布流控件:PinterestLikeAdapterVie
使用方法类似于ListView,下面是我使用该控件实现一个显示系统图片的简单应用:
xml中:
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000000"
com.huewu.pla.lib.multicolumnlistview p=""
xmlns:pla=""
android:background="#000000"
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
pla:plaColumnNumber="3"
pla:plaLandscapeColumnNumber="3"
plaColumnNumber表示显示多少列,plaLandscapeColumnNumber表示横屏下显示多少列。
但与StaggeredGridView 不同的是他没有提供设置item之间间隙大小的属性,这个可以通过在item的xml中设置一个padding来解决。
Android控件RecyclerView和ListView的异同
Android是一个不断进化的平台,Android
5.0的v7版本支持包中引入了新的RecyclerView控件,正如官方文档所言,RecyclerView是ListView的豪华增强版。它主要
包含以下几处新的特性,如ViewHolder,ItemDecorator,LayoutManager,SmothScroller以及增加或删除
item时item动画等。官方推荐我们采用RecyclerView来取代ListView。
ViewHolder
ViewHolder是用来保存视图引用的类,无论是ListView亦或是RecyclerView。只不过在ListView
中,ViewHolder需要自己来定义,且这只是一种推荐的使用方式,不使用当然也可以,这不是必须的。只不过不使用ViewHolder的
话,ListView每次getView的时候都会调用findViewById(int),这将导致ListView性能展示迟缓。而在
RecyclerView中使用 RecyclerView.ViewHolder 则变成了必须,尽管实现起来稍显复杂,但它却解决了ListView面临的上述不使用自定义ViewHolder时所面临的问题。 RecyclerView.ViewHolder 被BaseAdapter使用,以将posiiton绑定到上面(可以通过API查看 RecyclerView.ViewHolder#getPosition() 方法)。
LayoutManager
我们知道ListView只能在垂直方向上滚动,Android
API没有提供ListView在水平方向上面滚动的支持。或许有多种方式实现水平滑动,但是请想念我,ListView并不是设计来做这件事情的。但是
RecyclerView相较于ListView,在滚动上面的功能扩展了许多。它可以支持多种类型列表的展示要求,主要如下:
LinearLayoutManager ,可以支持水平和竖直方向上滚动的列表。
StaggeredGridLayoutManager ,可以支持交叉网格风格的列表,类似于瀑布流或者Pinterest。
GridLayoutManager ,支持网格展示,可以水平或者竖直滚动,如展示图片的画廊。
ItemAnimator
列表动画是一个全新的、拥有无限可能的维度。起初的Android API中,删除或添加item时,item是无法产生动画效果的。后面随着Android的进化,Google的Chat Hasse推荐使用 ViewPropertyAnimator 属性动画来实现上述需求。
相比较于ListView, RecyclerView.ItemAnimator 则被提供用于在RecyclerView添加、删除或移动item时处理动画效果。同时,如果你比较懒,不想自定义ItemAnimator,你还可以使用 DefaultItemAnimator 。
Adapter
ListView的Adapter中,getView是最重要的方法,它将视图跟position绑定起来,是所有神奇的事情发生的地方。同时我们也能够
通过registerDataObserver在Adapter中注册一个观察者。RecyclerView也有这个特性, RecyclerView.AdapterDataObserver
就是这个观察者。ListView有三个Adapter的默认实现,分别是ArrayAdapter、CursorAdapter和
SimpleCursorAdapter。然而,RecyclerView的Adapter则拥有除了内置的内DB游标和ArrayList的支持之外的
所有功能。 RecyclerView.Adapter 的实现的,我们必须采取措施将数据提供给Adapter,正如BaseAdapter对ListView所做的那样。
ItemDecoration
在ListView中如果我们想要在item之间添加间隔符,我们只需要在布局文件中对ListView添加如下属性即可:
1 android:divider="@android:color/transparent"
2 android:dividerHeight="5dp"
View Code
有趣的是,RecyclerView在默认情况下并不在item之间展示间隔符。尽管Google的家伙有意地将这个问题遗留给我们去自定义间隔符,但这
的确增加了开发人员的负担。如果你想要添加间隔符,你必须使用RecyclerView.ItemDecoration类来实现。或者,你可以应用官方示
例中的 DividerItemDecoration.java 文件。
OnItemTouchListener
ListView通过AdapterView.OnItemClickListener接口来探测点击事件。而RecyclerView则通过
RecyclerView.OnItemTouchListener接口来探测触摸事件。它虽然增加了实现的难度,但是却给予开发人员拦截触摸事件更多的
控制权限。
Others
ListView可以设置选择模式,并添加MultiChoiceModeListener,如下所示:
1 listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
2 listView.setMultiChoiceModeListener(new MultiChoiceModeListener() {
3 public boolean onCreateActionMode(ActionMode mode, Menu menu) { ... }
4 public void onItemCheckedStateChanged(ActionMode mode, int position,
5 long id, boolean checked) { ... }
6 public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
7 switch (item.getItemId()) {
8 case R.id.menu_item_delete_crime:
9 CrimeAdapter adapter = (CrimeAdapter)getListAdapter();
10 CrimeLab crimeLab = CrimeLab.get(getActivity());
11 for (int i = adapter.getCount() - 1; i = 0; i--) {
12 if (getListView().isItemChecked(i)) {
13 crimeLab.deleteCrime(adapter.getItem(i));
14 }
15 }
16 mode.finish();
17 adapter.notifyDataSetChanged();
18 return true;
19 default:
20 return false;
21 }
22 public boolean onPrepareActionMode(ActionMode mode, Menu menu) { ... }
23 public void onDestroyActionMode(ActionMode mode) { ... }
24 });
View Code
而RecyclerView则没有此功能。
总之,通过比较我们可以发现,RecyclerView充满了大量的自定义功能,它可以用于实现复杂的列表或网格,但实现起来稍显得复杂。
RecyclerView
RecyclerView 是Android一个更强大的控件,其不仅可以实现和ListView同样的效果,还有优化了ListView中的各种不足。其可以实现数据纵向滚动,也可以实现横向滚动(ListView做不到横向滚动)。接下来讲解RecyclerView的用法。
因为 RecyclerView 属于新增的控件,Android将RecyclerView定义在support库里。若要使用RecyclerView,第一步是要在 build.gradle 中添加对应的依赖库。
在 app/build.gradle 中的 dependencies闭包 添加以下内容:
然后点击顶部的Sync Now进行同步
由于 RecyclerView 不是内置在系统SDK中,需要把其完整的包名路径写出来
创建ImageView来显示水果图片,TextView来显示水果名字。
为 RecyclerView 新增适配器 FruitAdapter ,并让其继承于 RecyclerView.Adapter ,把泛型指定为 FruitAdapter.ViewHolder 。
LayoutManager 用于指定RecyclerView的布局方式。 LinearLayoutManager 指的是线性布局。
运行效果:
把LinearLayout改成垂直排列,因为水果名字长度不一样,把宽度改为100dp。
ImageView和TextView都改为水平居中
通过调用 setOrientation() 把布局的排列方向改为水平排列。
得益于RecyclerView的设计,我们可以通过LayoutManager实现各种不同的排列方式的布局。
运行结果:
除了 LinearLayoutManager , RecyclerView 还提供了 GridLayoutManager(网格布局) 和 StaggeredGridLayoutManager(瀑布流布局)
GridLayoutManager(网格布局)
修改 MainActivity.java ,把
换成
GridLayoutManager (Context context, int spanCount)
运行结果:
StaggeredGridLayoutManager(瀑布流布局)
把LinearLayout的宽度设为 match_parent 是因为瀑布流的宽度是 根据布局的列数来自动适配的,而不是固定值 。(GridLayoutManager也是 根据布局的列数来自动适配的 )
StaggeredGridLayoutManager layoutManager = new StaggeredGridLayoutManager(3,StaggeredGridLayoutManager.VERTICAL);
StaggeredGridLayoutManager传入2个参数,第一个是布局的列数,第二个是布局的排列方向。
random.nextInt(20)+1 产生1-20的随机数
运行效果:
上图是GridLayoutManager,下图是StaggeredGridLayout。
当从显示效果来看,已经一目了然。
GridLayoutManager是会固定高度的,所以会留下很多空白区域。
相反,StaggeredGridLayout并不会固定高度,以至于就算子项的高度不一致,下一行的会自动靠拢上一行。
修改ViewHolder,添加fruitView变量来保存子项最外层布局的实例。
运行效果:
关于android瀑布流布局代码和css瀑布流布局代码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;
- 上一篇:时间代码下载(时间代码简介)
- 下一篇:js走马灯代码(html5跑马灯代码)
相关推荐
- 05-13网页设计排版布局技巧,网页设计排版布局技巧
- 05-09网页代码,网页代码快捷键
- 05-06单页网站的代码(完整的网页代码)[20240506更新]
- 05-06个人主页图片代码(个人主页图片代码怎么弄)[20240506更新]
- 05-06提取微信名片代码(微信名片信息提取)[20240506更新]
- 05-06php后台权限管理代码(php管理员权限)[20240506更新]
- 05-06付费观看代码php(付费观看代码)[20240506更新]
- 05-06在线html执行代码(html怎么运行)[20240506更新]
- 05-06源代码管理资源管理器(资源管理器运行代码)[20240506更新]
- 05-06代码源软件库(程序代码库)[20240506更新]
取消回复欢迎 你 发表评论:
- 标签列表
- 最近发表
- 友情链接