自定义Dialog(2)
来源:互联网 发布:怎样安装t3软件 编辑:程序博客网 时间:2024/06/05 21:10
1.背景:因为自己的项目的Dialog的样式需要符合项目的风格就要自己来实现自定义的Dialog
2.如何去实现
步骤1.首先写出自己想要的Dialog想要弹出来的布局样式,就跟写布局一样。
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="@drawable/text_background"> <TextView android:id="@+id/title" android:layout_width="match_parent" android:layout_height="40dp" android:text="请输入路段" android:textSize="10dp" android:textStyle="bold" android:gravity="center" android:background="@drawable/dialog_background" android:textColor="#FFFFFF"/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginTop="25dp"> <AutoCompleteTextView android:id="@+id/my_loction" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="2" android:background="@drawable/text_search" android:completionThreshold="2" android:dropDownVerticalOffset="1.0dip" android:hint="我的位置" android:text="我的位置" android:textColorHint="@color/darkgrey" android:imeOptions="actionDone" android:inputType="text|textAutoComplete" android:maxLength="20" android:paddingRight="37.0dip" android:singleLine="true" android:textSize="16.0sp" /> <AutoCompleteTextView android:id="@+id/Object_Loction" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="2" android:layout_marginLeft="5.0dip" android:hint="目的地" android:textColorHint="@color/darkgrey" android:background="@drawable/text_search" android:imeOptions="actionDone" android:singleLine="true" android:textSize="16.0sp"/> </LinearLayout> <Button android:id="@+id/Navi_button" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="GO" android:textStyle="bold" android:background="@drawable/dialog_button_background" android:textSize="15dp"/></LinearLayout>
步骤2.
在active中创建AlterDialog并且利用getwindow().setContView()方法来加载自己的布局文件
LayoutInflater inflate = LayoutInflater.from(getActivity()); View view = inflate.inflate(R.layout.dialog_layout, null); final Dialog dialog = new AlertDialog.Builder(getActivity()).setView(new EditText(getActivity())).create();dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);//申请无标题dialog.show();dialog.getWindow().setContentView(view);//加载ViewButton navirGo = (Button) view.findViewById(R.id.Navi_button);//autocomplete的监听和寻找obj_Loction = (AutoCompleteTextView)view. findViewById(R.id.Object_Loction);my_Loction = (AutoCompleteTextView) view.findViewById(R.id.my_loction);obj_Loction.addTextChangedListener(this);my_Loction.addTextChangedListener(this);navirGo.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {NaviStart();//开始导航;Toast.makeText(getActivity(), "OK!", Toast.LENGTH_LONG).show(); dialog.dismiss();}});这样就可以定义自己的Dialog了
问题
这样的办法有一个问题就是输入法无法自己弹出来根据网上的解决办法就是setView(new Editext(Context))就可以了。
还可以给dialog设置背景透明,设置dialog的位置,
通过获得dialog.getwindow().getAttributes()获得windowMannger.LayoutParams设置一些dialog的参数就可以了
具体代码如下:
WindowManager.LayoutParams pa = dialog.getWindow().getAttributes();pa.alpha=0.9f;dialog.getWindow().setAttributes(pa);
效果图如下:
1 0
- 自定义Dialog(2)
- 自定义Dialog(2)
- 自定义Dialog(详细)
- 自定义Dialog(笔记)
- 自定义控件(Dialog篇)
- Activity 自定义dialog (自定义layout)
- 自定义控件(二)自定义Dialog
- 自定义Dialog---继承Dialog
- 自定义Dialog android Dialog
- 自定义Dialog
- 自定义Dialog
- 自定义dialog
- 自定义 Dialog
- 自定义dialog
- 自定义 dialog
- 自定义Dialog
- 自定义 Dialog
- 自定义Dialog
- Spark入门实战系列--5.Hive(上)--Hive介绍及部署
- 优先队列-堆排序
- Post方式请求网络数据
- linux学习(四):实体链接与符号链接
- 加快eclipse
- 自定义Dialog(2)
- EventBus(笔记)
- 在Windows下使用Wubi工具安装Ubuntu linux
- 洛谷 P1196 NOI2002 银河英雄传说
- 找到100~200之间的素数
- 堆排序
- angularJS指令参数详解
- Gengmotion安装常见问题
- Spark入门实战系列--5.Hive(上)--Hive介绍及部署