需要帮助调整对话框布局

时间:2016-09-24 10:20:00

标签: android listview dialog android-edittext

我希望有一个像这样的自定义对话框

Desired dialog look

这就是我试过的

enter image description here

listView中没有显示dialog, only editText

代码

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.action_add_task:
                AlertDialog.Builder dialog= new AlertDialog.Builder(this);
                LayoutInflater inflater = getLayoutInflater();
                View convertView = (View) inflater.inflate(R.layout.custom_dialog, null);
                dialog.setView(convertView);
                ListView lv = (ListView) convertView.findViewById(R.id.listView1);
                ArrayList<ToDoList> search = new ArrayList<>();
                search.add(0,new ToDoList("")); //populate your list here
                DialogAdapter adapter=new DialogAdapter(this,search,lv);
                lv.setAdapter(adapter);
                dialog.show();
                return true;

            default:
                return super.onOptionsItemSelected(item);
        }
    }

CUSTOM_DIALOG

<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/listView1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

</ListView>

dialog_with_edittext

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <ImageView
        android:id="@+id/img"
        android:layout_width="35dp"
        android:layout_height="35dp"
        android:src="@mipmap/add_new_task"
        android:layout_marginLeft="13dp"/>

    <EditText
        android:id="@+id/edtText"
        android:layout_marginLeft="70dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Add a new task"/>

    <ImageView
        android:id="@+id/dateImg"
        android:layout_width="35dp"
        android:layout_height="35dp"
        android:src="@mipmap/imgdate"
        android:layout_below="@+id/edtText"
        android:layout_marginLeft="13dp"/>

    <EditText
        android:id="@+id/date"
        android:layout_marginLeft="70dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/edtText"
        android:hint="Date"/>

    <ImageView
        android:id="@+id/timeImg"
        android:layout_width="35dp"
        android:layout_height="35dp"
        android:src="@mipmap/imgtime"
        android:layout_below="@+id/date"
        android:layout_marginLeft="13dp"/>

    <EditText
        android:id="@+id/time"
        android:layout_marginLeft="70dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/date"
        android:hint="Date"/>

    <Button
        android:id="@+id/cancelBtn"
        android:background="@color/red"
        android:textColor="@color/white"
        android:text="Cancel"
        android:layout_width="165dp"
        android:layout_height="40dp"
        android:layout_below="@+id/time"
        android:layout_marginLeft="13dp"/>

    <Button
        android:id="@+id/okBtn"
        android:background="@color/light_sky_blue"
        android:textColor="@color/white"
        android:text="Save"
        android:layout_width="165dp"
        android:layout_height="40dp"
        android:layout_below="@+id/time"
        android:layout_marginLeft="200dp"/>


</RelativeLayout>

2 个答案:

答案 0 :(得分:0)

  1. 将EditText的背景设置为android:color/transparent或白色。这将删除EditText中的行,以便您可以拥有通用行(分隔符)
  2. 在想要分隔符

    的地方添加
    <View
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:background="#aa121212" />
    

答案 1 :(得分:0)

dialog_with_edittext.xml中尝试此代码。

<?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="wrap_content">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/linear"
        android:orientation="vertical">
    <EditText
        android:id="@+id/edtText"
        android:layout_marginLeft="70dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:drawableLeft="@mipmap/add_new_task"
        android:hint="Add a new task"/>

    <EditText
        android:id="@+id/date"
        android:layout_marginLeft="70dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/edtText"
        android:drawableLeft="@mipmap/imgdate"
        android:hint="Date"/>

    <EditText
        android:id="@+id/time"
        android:layout_marginLeft="70dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/date"
        android:drawableLeft="@mipmap/imgtime"
        android:hint="Date"/>
    </LinearLayout>

    <LinearLayout
    android:layout_width="match_parent"
    android:layout_below="@+id/linear"
    android:layout_height="wrap_content">
    <Button
        android:id="@+id/cancelBtn"
        android:background="@color/red"
        android:textColor="@color/white"
        android:text="Cancel"
        android:layout_width="wrap_content"
        android:layout_weight="1"
        android:layout_height="40dp" />

    <Button
        android:id="@+id/okBtn"
        android:background="@color/light_sky_blue"
        android:textColor="@color/white"
        android:text="Save"
        android:layout_weight="1"
        android:layout_width="wrap_content"
        android:layout_height="40dp" />

</LinearLayout>
</RelativeLayout>

并消失listview的分隔线使用此..

android:divider="@null". 

或者您可以将颜色设置为分隔线。

android:divider="#FFCC00"