#Android使用指定的View開發彈窗功能 Android開發中進程會使用到咱們的AlertDialog,可是比較惋惜的是咱們的Android原生的AlertDialog的效果又比較的簡陋,這個時候咱們就須要自定義的View去顯示了。 ##Overview Android 中的AlertDialog 的效果十分的的炫酷。 他的效果是相似彈窗的效果。 那麼咱們就能夠拿他來作不少事情,好比點擊添加時,彈出咱們的AlertDialog 的效果就十分的棒。那就讓咱們看一下如何使用它。android
##首先 咱們看一下 咱們的 自定義的view 的佈局。app
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="400dp" android:layout_height="470dp" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginLeft="10dp" android:layout_marginTop="20dp" android:layout_marginRight="10dp" android:layout_marginBottom="20dp" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <EditText android:id="@+id/editTodoItems" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="8" android:hint="今天打算作什麼?" android:textColor="#000000" android:textSize="14sp" /> <TextView android:id="@+id/TodotxtAddItems" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="2" android:gravity="center" android:text="添加" android:textColor="@color/MainColor" android:textSize="18sp" android:textStyle="bold" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <androidx.cardview.widget.CardView android:layout_width="wrap_content" android:layout_height="35dp" android:backgroundTint="@color/dark" app:cardCornerRadius="20dp"> <LinearLayout android:id="@+id/today" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginLeft="15dp" android:layout_marginTop="10dp" android:layout_marginRight="15dp" android:layout_marginBottom="10dp" android:text="今天" android:textColor="#fff" android:textSize="12sp" /> </LinearLayout> </androidx.cardview.widget.CardView> <androidx.cardview.widget.CardView android:layout_width="wrap_content" android:layout_height="35dp" android:layout_marginLeft="10dp" android:backgroundTint="@color/dark" app:cardCornerRadius="20dp"> <LinearLayout android:id="@+id/tomorrow" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="15dp" android:layout_marginTop="10dp" android:layout_marginRight="15dp" android:layout_marginBottom="10dp" android:text="明天" android:textColor="#fff" android:textSize="12sp" /> </LinearLayout> </androidx.cardview.widget.CardView> <androidx.cardview.widget.CardView android:layout_width="wrap_content" android:layout_height="35dp" android:layout_marginLeft="10dp" android:backgroundTint="@color/dark" app:cardCornerRadius="20dp"> <LinearLayout android:id="@+id/selectDay" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:id="@+id/Day3" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginLeft="15dp" android:layout_marginTop="10dp" android:layout_marginRight="15dp" android:layout_marginBottom="10dp" android:gravity="center" android:text="選擇日期" android:textColor="#fff" android:textSize="12sp" /> </LinearLayout> </androidx.cardview.widget.CardView> <androidx.cardview.widget.CardView android:layout_width="wrap_content" android:layout_height="35dp" android:layout_marginLeft="10dp" android:backgroundTint="@color/dark" app:cardCornerRadius="20dp"> <LinearLayout android:id="@+id/intoBox" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginLeft="15dp" android:layout_marginTop="10dp" android:layout_marginRight="15dp" android:layout_marginBottom="10dp" android:text="🗑放入待辦箱" android:textColor="#fff" android:textSize="12sp" /> </LinearLayout> </androidx.cardview.widget.CardView> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="50dp" android:layout_marginTop="5dp" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="⏰" android:textSize="19sp" /> <EditText android:id="@+id/editTodoItemsMsg" android:layout_width="match_parent" android:layout_height="match_parent" android:hint="添加備註" android:textSize="14sp" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="50dp" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="❗工做量 " android:textSize="18sp" /> <Button android:id="@+id/ordinary" android:layout_width="0dp" android:layout_height="40dp" android:layout_weight="1" android:text="通常" android:textColor="#fff" android:textSize="16sp" /> <Button android:id="@+id/medium" android:layout_width="0dp" android:layout_height="40dp" android:layout_weight="1" android:text="中等難度" android:textColor="#fff" android:textSize="16sp" /> <Button android:id="@+id/higher" android:layout_width="0dp" android:layout_height="40dp" android:layout_weight="1" android:text="較高難度" android:textColor="#fff" android:textSize="16sp" /> </LinearLayout> </LinearLayout> </LinearLayout>
這樣咱們的 自定義的View 就建立完成了。 而後咱們看一下如何去使他。 首先咱們看一下 在AlertDialog 中 使用 SetView 的方法:佈局
View view = LayoutInflater.from(TodoActivity.this).inflate(R.layout.todo_add_items, null, false);
首先咱們使用咱們的View 去接收咱們的自定義佈局。 而後咱們建立咱們的AlertDialog
。 而後咱們直接進行.setView(view);
便可。this
##看一下效果 code