自定义Dialog 去掉标题

自定义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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值