布局item
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:background="@color/lagoumain_listview_item_pre"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="50dp"
android:textSize="16sp"
android:textColor="@color/black"
android:gravity="center"
android:text="学历"
/>
</LinearLayout>
布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ListView
android:id="@+id/lv_dialog"
android:scrollbars="none"
android:layout_alignParentBottom="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="@color/msg_invite_filter_state_line0"
android:dividerHeight="0.3dip"
android:listSelector="@drawable/listview_item_bg"
></ListView>
</RelativeLayout>
样式
<style name="Dialog" parent="android:style/Theme.Dialog">
<item name="android:background">#00000000</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
</style>
代码
private void dialogEducation(){
final AlertDialog builder = new AlertDialog.Builder(this,R.style.Dialog).create(); // 先得到构造器
builder.show();
builder.getWindow().setContentView(R.layout.dialog_jianli);
LayoutInflater factory = LayoutInflater.from(this);
View view = factory.inflate(R.layout.dialog_jianli, null);
builder.getWindow().setContentView(view);
listview= (ListView) view.findViewById(R.id.lv_dialog);
StringAdapter adapter;
adapter=new StringAdapter(education,this);
listview.setAdapter(adapter);
Window dialogWindow = builder.getWindow();
dialogWindow.setGravity( Gravity.BOTTOM);//显示在底部
WindowManager m = getWindowManager();
Display d = m.getDefaultDisplay(); // 获取屏幕宽、高用
WindowManager.LayoutParams p = dialogWindow.getAttributes(); // 获取对话框当前的参数值
p.height = (int) (d.getHeight() * 0.5); // 高度设置为屏幕的0.5
p.width = d.getWidth(); // 宽度设置为屏幕宽
dialogWindow.setAttributes(p);
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
tv_education.setText(education[position]);
builder.dismiss();
}
});
}
解决自定义Dialog不能弹出软件盘
builder.getWindow().clearFlags(
WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);