先上图

两个关键地方,一是让dialog全透明,二是让listitem分开。

首先定义一个自定义的dialog

布局文件,这个只是包含一个listview而已

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:orientation="vertical">
<ListView
android:id="@+id/lv_withdraw_account"
android:background="@android:color/transparent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:dividerHeight="16dp" //这个比较关键,指定分隔距离
android:divider="@android:color/transparent"></ListView> //让分隔线透明,这样看起来就是上下成员分开了一样 </LinearLayout>
样式文件,让dialog背景透明,在调用时用到
<style name="dialog" parent="@android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item><!--边框-->
<item name="android:windowIsFloating">true</item><!--是否浮现在activity之上-->
<item name="android:windowIsTranslucent">true</item><!--半透明-->
<item name="android:windowNoTitle">true</item><!--无标题-->
<item name="android:windowBackground">@android:color/transparent</item><!--背景透明-->
<item name="android:backgroundDimEnabled">true</item><!--模糊--> //为false时,整个屏幕无主次之分,就像dialog直接帖在active上面,其它区域没有变灰效果
</style>
自定义dialog java代码
public class TransparentDialog  extends AlertDialog {

    public TransparentDialog(Context context, int theme) {
super(context, theme);
} public TransparentDialog(Context context) {
super(context);
} @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dialog__withdraw_cash_account);
}
}

显示dialog

mAlertDialog = new TransparentDialog(this,R.style.dialog);//创建Dialog并设置样式主题
mAlertDialog.show();
//dialog在show出来后才能发现他的子控件
lvWithdrawAccount = (ListView)mAlertDialog.findViewById(R.id.lv_withdraw_account);
lvWithdrawAccount.setAdapter(mWithdrawCashAdapter);

实现单选效果

首先为listview里的每个选项设置一个背景效果,文件名为selector_item_radio_icon

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@mipmap/ico_radiochecked" android:state_selected="true"></item>
<item android:drawable="@mipmap/ico_radio"></item> </selector>
listitem的布局文件为
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
android:orientation="horizontal"
android:paddingLeft="20dp"
android:paddingRight="20dp"> <TextView
android:id="@+id/tv_title"
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_weight="1"
android:gravity="center_vertical"
android:text="2015/11/23"
android:focusable="false"
android:textColor="@color/content_font_color"
android:textSize="@dimen/text_large" /> <ImageView
android:id="@+id/iv_checked"
android:layout_width="wrap_content"
android:layout_height="60dp"
android:gravity="center_vertical"
android:focusable="false"
android:src="@drawable/selector_item_radio_icon"/> //这个表示在该控件在被选中时所显示图片,用于达到切换的效果 </LinearLayout>
java code用法
lvWithdrawAccount.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
view.setSelected(true); //在被点击时,设该选项为选中状态,这样就好了
}
});
保证dialog里最多显示三个item
lvWithdrawAccount.setAdapter(mWithdrawCashAdapter);
//设置对话框的高度,最多只能显示3条
//先取item高度
ListAdapter listAdapter = lvWithdrawAccount.getAdapter();
if (listAdapter == null) {
return;
}
View listItem = listAdapter.getView(0, null, lvWithdrawAccount);
listItem.measure(0, 0);
int itemHeight = listItem.getMeasuredHeight();
AlertManager.toast(context, "height : " + itemHeight);
if(mWithdrawCashAccounts.size() > 3){
params = lvWithdrawAccount.getLayoutParams();
params.height = itemHeight * 3 + WindowUtils.dpToPixels(this, 32);
lvWithdrawAccount.setLayoutParams(params);
}
 

dialog 中装listview并让每一个item分隔悬空,并具有radiobutton的效果的更多相关文章

  1. listview当选中某一个item时设置背景色其他的不变

    listview当选中某一个item时设置背景色其他的不变: 可以使用listview.setOnFoucsChangeListener(listener) ; /** * listview获得焦点和 ...

  2. Android 点击ListView(或GridView)的一个item,使其里面textview变色,点击另一个这个恢复原来颜色

    今天作一个项目,就是做视频app,如果电视剧的话有许多剧集,点击一个item,播放不同的剧集,要有点击效果,并且默认是选择第一个.花费了一段时间,自己觉得有点难 度,现在和大家分享一下,下面是效果显示 ...

  3. 解决“listView点击一个Item,另外几个Item也跟着改变”的问题

    如图所看到的: 我点击Item,右边的checkBox就会对应的变化.可是当我第一次做的时候.点击第一个Item,右边的checkBox变为绿色,可是当我listView往下拉的时候,发现以下也有是绿 ...

  4. Android ListView 之 SimpleAdapter 二 (包含 item 中按钮监听)

    1    MainActivity.java package com.myadapter; import java.util.ArrayList; import java.util.HashMap; ...

  5. Android 高级UI设计笔记03:使用ListView实现左右滑动删除Item

    1. 这里就是实现一个很简单的功能,使用ListView实现左右滑动删除Item: (1)当我们在ListView的某个Item,向左滑动显示一个删除按钮,用户点击按钮,即可以删除该项item,并且有 ...

  6. android小知识之多个listview在同一界面只有item高亮

    我的工程里面一个activity有两个有圆角的listview,就是 自定义的 CornerListView继承ListView,  然后  我想圆角的listview A点击之后一个item会高亮  ...

  7. 它们的定义ListView,实现Item除去滑动和滑出菜单效果

    这个程序是基于变化从网上开源项目,详情货源忘记.懒得去搜索,.假设有不合适的地方.请与我联系作者.我会及时回复和处理! 序中主要包括两个ListView,一个是实现側滑删除.一个是側滑出菜单,代码中的 ...

  8. 【转】Android ListView加载不同的item布局

    原创教程,转载请保留出处:http://www.eoeandroid.com/thread-72369-1-1.html     最近有需求需要在listView中载入不同的listItem布局,开始 ...

  9. ListView刷新某一项Item

    ListView现在已经很少被使用,但还是在这里列出来说一下,有时候我们仅仅需要改变listView的某个Item,如果调用adapter的notifyDataSetChanged()方法效率不高,并 ...

随机推荐

  1. Tomcat 常用配置

    1.Tomcat 管理员设置 想要进入Tomcat管理界面: 打开Tomcat 目录 :进入 Conf目录,找到tomcat-users.xml文件,打开 修改 tomcat-users 节, 2.T ...

  2. 仿淘宝详情转场(iOS,安卓没有这功能)

    由于公司是做跨境电商的,所以对各大电商APP都有关注,最近看到淘宝iOS端(安卓没有)在商品详情点击加入购物车有一个动画效果特别赞,正好今天新版本上线,下午就抽了些时间研究了下. 主要思路是自定义转场 ...

  3. js实现缓冲运动,和匀速运动有点不相同

    缓冲运动和匀速运动有点不同,看图可以知道缓冲运动速度是越来越慢的. <style> *{ padding:0; margin:10px 0; } #div1{ height:100px; ...

  4. 百度Ueditor

    最近用到了百度Ueditor,也来写一写百度Ueditor的使用教程: 一.从官网下载百度Ueditor,http://ueditor.baidu.com/website/download.html, ...

  5. c# winform 打包部署 自定义界面 或设置开机启动

    添加安装部署项目后,鼠标右键安装项目->视图->注册表, 要使软件在开机就运行,可以在HKEY_CURRENT_USER\Software\Microsoft\Windows\Curren ...

  6. Yarn&Mapreduce参数的具体含义和配置参考

    Yarn & Mapreduce 参数的具体含义和配置 http://zh.hortonworks.com/blog/how-to-plan-and-configure-yarn-in-hdp ...

  7. 今天遇到的关于mysql的max_allowed_packet的问题

    今天,运维组的同学来找我,说是备份池的文件描述没有显示出来,而且是从20号开始就不能显示,之前的文件描述就能显示,而且20号他们上传备份的数据确实是传过来的.但是是在web界面文件描述显示不出来. 先 ...

  8. xcode5-ios7-如何添加120x120、152x152、76x76图标

    以120x120为例: 添加Icon_120x120.png-->.plist添加Icon files-->App Icons自动变化 1. 2. 3. ================= ...

  9. info grep半翻译加整理

    内容来源基本上是整理info grep而来,当然只整理了关于用法的部分.有些地方给出了些解释,算是对grep的一个细节概述吧. 1.1 grep选项 grep家族:grep -G或者grep使用基本正 ...

  10. Java日志系统框架的设计与实现

    推荐一篇好的文章介绍java日志系统框架的设计的文章:http://soft.chinabyte.com/database/438/11321938.shtml 文章内容总结: 日志系统对跟踪调试.程 ...