自定义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: 房屋设施弹出框
* Copyright (c) ,${year} , janson
* This program is protected by copyright laws.
* Program Name:${file_name}
* 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>








你可能感兴趣的:(Android技能)