自定义Dialog 去掉标题
来源:互联网 发布:网络交友有利有弊 英语 编辑:程序博客网 时间:2024/06/06 08:47
自定义Dialog是每个android 爱屁屁几乎都会用到的。于是乎最为一个android人我也自定义了一个Dialog.效果见图
这个运行效果是在华为大屏手机上,But,当我兴致勃勃的将代码部署到老红米(红米一代,最老版本的红米)上时,和我预想的差了不止一点啊看图:
敢问这一道蓝色的线是什么鬼??我看看了代码,将设置的透明背景去掉,离奇的发现,这条蓝色的线是标题和正文分割线。去掉这根线也不是什么难事,只需要在原来的代码上加上几行代码就搞定了。
看代码:
package com.homenet.androidclient.dialog;import android.app.Dialog;import android.content.Context;import android.graphics.Color;import android.os.Bundle;import android.view.Gravity;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.view.Window;import android.view.WindowManager;import android.widget.BaseAdapter;import android.widget.GridView;import android.widget.ImageButton;import android.widget.TextView;import com.homenet.androidclient.R;import com.homenet.androidclient.bean.UserBean;import java.util.List;/** * Description: 房屋设施弹出框<br/> * Copyright (c) ,${year} , janson <br/> * This program is protected by copyright laws. <br/> * Program Name:${file_name} <br/> * Date: 2016-10-26 * @author 史元睿 * @version : 1.0 */public class EquDialog extends Dialog{ private Context context; private GridView gridView; private ImageButton mydelect; private MyEquAdapter adapter; private List<String> list=UserBean.devices; public EquDialog(Context context, List<String> devices) { super(context); this.context = context; setContentView(R.layout.dialog_equ); Window window = getWindow(); WindowManager.LayoutParams params = window.getAttributes(); params.gravity = Gravity.CENTER; window.setBackgroundDrawableResource(android.R.color.transparent); window.setAttributes(params); setCanceledOnTouchOutside(true);//上面的代码,是用来去除Holo主题的蓝色线条
try{ int dividerID=context.getResources().getIdentifier("android:id/titleDivider", null, null); View divider=findViewById(dividerID); divider.setBackgroundColor(Color.TRANSPARENT); }catch(Exception e){ e.printStackTrace(); } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); gridView= (GridView) findViewById(R.id.dialog_gv); mydelect= (ImageButton) findViewById(R.id.dialog_delect); mydelect.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { EquDialog.this.dismiss(); } }); adapter=new MyEquAdapter(context,list); gridView.setAdapter(adapter); }} class MyEquAdapter extends BaseAdapter{ private Context context; private List<String> list=UserBean.devices; public MyEquAdapter() { } public MyEquAdapter(Context context,List<String> list) { this.context = context; this.list=list; } //用一个方法来获取数据源 public void setList(Context context,List<String> list) { this.context = context; this.list = list; } public List<String> getList() { return list; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return position; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if(convertView==null){ holder=new ViewHolder(); convertView = LayoutInflater.from(context).inflate(R.layout.equ_gv_item, null); holder.tv= (TextView) convertView.findViewById(R.id.equ_gv_item_tv); convertView.setTag(holder); }else { holder = (ViewHolder) convertView.getTag(); } holder.tv.setText(list.get(position)); return convertView; } class ViewHolder{ private TextView tv; }}
没错,一个try catch 就搞定,现在任凭你在那个手机上都是没有那条讨厌的蓝色线。
这个自定义Dialog 布局如下:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:layout_gravity="center" android:background="@color/transparent"> <LinearLayout android:layout_width="280dp" android:layout_height="330dp" android:orientation="vertical" android:layout_marginLeft="15dp" android:layout_marginRight="15dp" android:background="@color/white"> <!--房屋配套设施--> <TextView android:layout_width="match_parent" android:layout_height="40dp" android:text="房屋配套设施" android:gravity="center_vertical" android:layout_marginLeft="15dp" android:textColor="@color/black"/> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="@color/gainsboro"/> <GridView android:id="@+id/dialog_gv" android:layout_width="wrap_content" android:background="@color/white" android:layout_height="wrap_content" android:layout_marginTop="15dp" android:layout_marginLeft="15dp" android:layout_marginRight="15dp" android:clickable="true" android:clipChildren="true" android:columnWidth="35dp" android:listSelector="@null" android:numColumns="3" android:paddingBottom="1dp" android:stretchMode="columnWidth" android:verticalSpacing="1dp"></GridView> </LinearLayout> <ImageButton android:id="@+id/dialog_delect" android:layout_width="20dp" android:layout_height="20dp" android:layout_marginTop="20dp" android:background="@mipmap/delect"/></LinearLayout>
0 0
- 自定义Dialog 去掉标题
- Android Dialog去掉标题Title
- Android Dialog样式activity并去掉标题
- 自定义一个dialog没有标题
- Android 去掉自定义dialog的白色边框
- 自定义Dialog并去掉默认的头部
- Android 去掉自定义dialog的白色边框
- 去掉自定义dialog的白色背景
- Dialog(六)——去掉自定义Dialog的黑色边框
- 记录:去除自定义dialog的标题
- android dialog去掉白色边框和标题2014.9.26
- Android创建自定义dialog方法详解-样式去掉阴影效果
- 如何去掉自定义dialog的背景与边框?
- Android:自定义Dialog上面高出一部分 去掉
- 去掉标题
- 去除自定义Dialog边框和标题蓝色线条
- AlertDialog自定义整个布局去掉原有的标题按钮等
- android 在开发WebView时,去掉网页的标题并设置成自定义的标题
- java 字符串截取的三种方式
- WebStorm强大的调试JavaScript功能
- ZIP/RAR解压缩(JAVA)
- MVC的开发模式
- ShowSDK一键分享
- 自定义Dialog 去掉标题
- SPOJ LEONARDO Leonardo Notebook
- ArcGIS Server如何以缓存的方式发布地图
- 全面解析微信小程序
- 安卓BroadcastReceiver Kill 掉第三方app服务
- Linux终端监控工具dstat
- linux 搭建SVN服务器,为多个项目分别建立版本库并单独配置权限
- 一组select实现多组select功能
- 使用cordova的加强webview