Android DrawLayout + ListView 的使用(一)
想做一个APP,设计中有侧边栏这个功能,所以现在开始学习下侧边栏的实现。
在官方的UI空间中已经给出了DrawerLayout这个侧滑的菜单空间。
因为在使用DrawerLayout的时候遇到了些问题,花了一天是时间才搞定,这里来记录一下,免得到时候自己在掉坑里。
1.主布局一定要是DrawerLayout。
2.侧栏拉出来时,要点击空白栏关闭侧栏的话,一定要把空白栏设置为FrameLayout
先上个效果图吧:
好了,上代码:
activity_main.xml
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"xmlns:app="http://schemas.android.com/apk/res-auto"android:id="@+id/drawer_layout"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><!-- 内容栏--><FrameLayoutandroid:id="@+id/ly_content"android:layout_width="match_parent"android:layout_height="match_parent" /><!-- 侧滑栏--><ListViewandroid:id="@+id/list_left_drawer"android:layout_width="300dp"android:layout_height="match_parent"android:layout_gravity="start"android:background="#fff000"android:choiceMode="singleChoice"android:divider="#FFFFFF"android:dividerHeight="1dp" /> </android.support.v4.widget.DrawerLayout>
listView里面的布局 item_list.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"xmlns:app="http://schemas.android.com/apk/res-auto"><!-- 定义一个用于显示头像的ImageView --><ImageViewandroid:id="@+id/imgtou"android:layout_width="64dp"android:layout_height="64dp"android:baselineAlignBottom="true"android:paddingLeft="8dp" /><!-- 定义一个竖直方向的LinearLayout,把QQ呢称与说说的文本框设置出来 --><LinearLayoutandroid:id="@+id/new_line"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"><TextViewandroid:id="@+id/name"android:layout_width="wrap_content"android:layout_height="wrap_content"android:paddingLeft="8px"android:textColor="#1D1D1C"android:textSize="20sp" /><TextViewandroid:id="@+id/says"android:layout_width="wrap_content"android:layout_height="wrap_content"android:paddingLeft="8px"android:textColor="#B4B4B9"android:textSize="14sp" /><TextViewandroid:id="@+id/time"android:layout_width="wrap_content"android:layout_height="wrap_content"android:paddingLeft="8px"android:textColor="#B4B4B9"android:textSize="14sp" /></LinearLayout></LinearLayout>
主程序MainActivity.java
package action.sun.com.testdraw2;import android.support.v4.app.FragmentManager; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.AdapterView; import android.widget.ListView; import android.widget.SimpleAdapter; import android.widget.Toast;import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;public class MainActivity extends AppCompatActivity implements AdapterView.OnItemClickListener{private String[] names = new String[]{"Tom", "Jack", "Json"};private String[] says = new String[]{"111111,2222222", "33333333~", "444444444~"};private String[] times = new String[]{"1天前", "3天前~", "2天前~"};private int[] imgIds = new int[]{R.mipmap.ic_launcher, R.mipmap.ic_launcher, R.mipmap.ic_launcher};private DrawerLayout drawer_layout;private ListView listView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Log.d("1", "onCreate: xxxxxxxxxxxxxxx");drawer_layout = (DrawerLayout) findViewById(R.id.drawer_layout);List<Map<String, Object>> listitem = new ArrayList<Map<String, Object>>();for (int i = 0; i < names.length; i++) {Map<String, Object> showitem = new HashMap<String, Object>();showitem.put("touxiang", imgIds[i]);showitem.put("name", names[i]);showitem.put("says", says[i]);showitem.put("time", times[i]);listitem.add(showitem);}//创建一个simpleAdapterSimpleAdapter myAdapter = new SimpleAdapter(getApplicationContext(), listitem,R.layout.item_list, new String[]{"touxiang", "name", "says","time"},new int[]{R.id.imgtou, R.id.name, R.id.says, R.id.time});//ListView 容器listView = (ListView) findViewById(R.id.list_left_drawer);listView.setAdapter(myAdapter);listView.setOnItemClickListener(this);}//点击Item 显示在帧页面选择的Item值 @Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {Toast.makeText(MainActivity.this, "提示的内容", Toast.LENGTH_LONG).show();//关闭 侧边栏 drawer_layout.closeDrawer(listView);} }
到了现在,代码完了。
Android DrawLayout + ListView 的使用(一)相关推荐
- Android使用ListView控件问题
Android使用ListView控件问题: The application has stopped unexpectedly, please try again. 开发环境:android 1.6 ...
- android 分组 listview,Android实现的ListView分组布局改进示例
本文实例讲述了android实现的listview分组布局改进方法.分享给大家供大家参考,具体如下: 由于是在网上转载的一篇文章,在这里就不多说废话了,首先看一下最终的效果图: 然后是实现该listv ...
- Android实现ListView异步加载图片
转: http://www.iteye.com/topic/685986 ListView异步加载图片是非常实用的方法,凡是是要通过网络获取图片资源一般使用这种方法比较好,用户体验好,下面就说实现方法 ...
- Android 利用ListView制作带竖线的多彩表格
1.listview与GridView 其实Android本身是有表格控件(GridView)的,但是GridView的每一列的宽度被限定为一样宽,有时设计表格时,列宽不可能为同一宽度,所有可以用Li ...
- ym——Android之ListView性能优化
转载请注明本文出自Cym的博客(http://blog.csdn.net/cym492224103),谢谢支持! Android之ListView性能优化 假设有看过我写过的15k面试题的朋友们一定知 ...
- 我的Android进阶之旅------Android二级ListView列表的实现
实现如下图所示的二级列表效果 首先是在布局文件中,布局两个ListView,代码如下: <LinearLayout xmlns:android="http://schemas.andr ...
- Android 动态刷新listview中的数据
之前一直困扰listview刷新后位置的问题,现在才明白,原来不能重新设置listview的adapter,而应该用notifyDataSetChanged()来刷新,这样位置就不会置顶. 下面做了一 ...
- android之ListView和adapter配合显示图片和文字列表
listView页面布局:layout/activity_main.xml: <LinearLayout xmlns:android="http://schemas.android.c ...
- android 之ListView总结(一个综合实例)
实例效果: 后台逻辑: package com.hsj.example.paginationloadnetdatademo02;import android.graphics.Bitmap; impo ...
最新文章
- 「模型解读」深度学习网络只能有一个输入吗
- c++ 编译添加dll_linux下编写C/C++代码须知———串讲
- Qt Creator添加套件
- 写1行代码影响1000000000人,这是个什么项目?
- ureport2 + spring boot 搭建
- MySQL中的float和decimal类型有什么区别
- 市场调研思维导图模板
- Xiaojie雷达之路---匹配滤波器
- [转]java代码混淆以及及IDEA中springboot使用Allatori进行混淆
- 【产业互联网周报】AWS 全球换帅,中国区发布战略;杨杰回应回A,中移动计划千亿投5G;全球缺芯潮持续...
- 最小二乘估计-LSE(Least Square Estimate)
- VTK:线宽用法实战
- 微信开放平台申请流程讲解与注意事项(未完待续)
- ES6 模板字符串基本用法
- springboot房屋租赁合同报修系统java-ssm
- 生鲜配送app开发方案
- 华为机试-拼音翻译成阿拉伯数字
- 计算机团体及知名科学家,2019年度ACM杰出科学家!拿下华人数学领域最高荣誉的上财陆品燕教授,又拿奖啦!...
- 如何理解答案-Leo读提问的智慧(4)
- BAPI_GOODSMVT_CREATE MIGO预留成本中心201发货实例
热门文章
- opensuse download
- 半木下低风险交易-1
- 域名缓存侦测(DNS Cache Snooping)技术
- Highmaps网页图表教程之下载Highmaps与Highmaps的地图类型
- java iostream_【JAVA】IOStream
- php图片自动裁剪工具,php图片自动裁剪工具,解决图片变形问题,缩略图问题
- c java 开发android_java代码与纯C代码混编完成android应用的开发
- oracle 两层table of,ORACLE中嵌套表的基本知识
- ICA处理脑电资料汇总
- 如何正确有效表达:对不起,我们已经尽力了?