Android Dialog修改小结

来源:互联网 发布:矢量图下载 知乎 编辑:程序博客网 时间:2024/04/27 13:48
  • 几个相关的类

            1.Dialog
            2.DialogFragment
            3.DialogPreference
            4.DialogInterface
            5.AlertDialog
            6.DatePickerDialog
            7.TimePickerDialog
            8.ProgressDialog


继承关系


  • 这里主要分析AlertDialog界面

            下面是AlertDialog的布局文件

<LinearLayout    xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/parentPanel"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:orientation="vertical"    android:paddingTop="9dip"    android:paddingBottom="3dip"    android:paddingStart="3dip"    android:paddingEnd="1dip">    <LinearLayout android:id="@+id/topPanel"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:minHeight="54dip"        android:orientation="vertical">        <LinearLayout android:id="@+id/title_template"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:orientation="horizontal"            android:gravity="center_vertical"            android:layout_marginTop="6dip"            android:layout_marginBottom="9dip"            android:layout_marginStart="10dip"            android:layout_marginEnd="10dip">            <ImageView android:id="@+id/icon"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_gravity="top"                android:paddingTop="6dip"                android:paddingEnd="10dip"                android:src="@drawable/ic_dialog_info" />            <com.android.internal.widget.DialogTitle android:id="@+id/alertTitle"                style="?android:attr/textAppearanceLarge"                android:singleLine="true"                android:ellipsize="end"                android:layout_width="match_parent"                android:layout_height="wrap_content" />        </LinearLayout>        <ImageView android:id="@+id/titleDivider"            android:layout_width="match_parent"            android:layout_height="1dip"            android:visibility="gone"            android:scaleType="fitXY"            android:gravity="fill_horizontal"            android:src="@android:drawable/divider_horizontal_dark" />        <!-- If the client uses a customTitle, it will be added here. -->    </LinearLayout>    <LinearLayout android:id="@+id/contentPanel"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_weight="1"        android:orientation="vertical">        <ScrollView android:id="@+id/scrollView"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:paddingTop="2dip"            android:paddingBottom="12dip"            android:paddingStart="14dip"            android:paddingEnd="10dip"            android:overScrollMode="ifContentScrolls">            <TextView android:id="@+id/message"                style="?android:attr/textAppearanceMedium"                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:padding="5dip" />        </ScrollView>    </LinearLayout>    <FrameLayout android:id="@+id/customPanel"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_weight="1">        <FrameLayout android:id="@+android:id/custom"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:paddingTop="5dip"            android:paddingBottom="5dip" />    </FrameLayout>    <LinearLayout android:id="@+id/buttonPanel"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:minHeight="54dip"        android:orientation="vertical" >        <LinearLayout            style="?android:attr/buttonBarStyle"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:orientation="horizontal"            android:paddingTop="4dip"            android:paddingStart="2dip"            android:paddingEnd="2dip"            android:measureWithLargestChild="true">            <LinearLayout android:id="@+id/leftSpacer"                android:layout_weight="0.25"                android:layout_width="0dip"                android:layout_height="wrap_content"                android:orientation="horizontal"                android:visibility="gone" />            <Button android:id="@+id/button1"                android:layout_width="0dip"                android:layout_gravity="start"                android:layout_weight="1"                style="?android:attr/buttonBarButtonStyle"                android:maxLines="2"                android:layout_height="wrap_content" />            <Button android:id="@+id/button3"                android:layout_width="0dip"                android:layout_gravity="center_horizontal"                android:layout_weight="1"                style="?android:attr/buttonBarButtonStyle"                android:maxLines="2"                android:layout_height="wrap_content" />            <Button android:id="@+id/button2"                android:layout_width="0dip"                android:layout_gravity="end"                android:layout_weight="1"                style="?android:attr/buttonBarButtonStyle"                android:maxLines="2"                android:layout_height="wrap_content" />            <LinearLayout android:id="@+id/rightSpacer"                android:layout_width="0dip"                android:layout_weight="0.25"                android:layout_height="wrap_content"                android:orientation="horizontal"                android:visibility="gone" />        </LinearLayout>     </LinearLayout></LinearLayout>

          上张图片,然后我们结合xml文件和图来进行分析

        AlertDialog布局分为上中下三部分:topPanel、contentPanel、buttonPanel。其中buttonPanel只布局了三个按钮,所以AlertDialog最多允许三个按钮。当然你也可以自己添加。通过下面的代码你可以对AlertDialog布局作最大可能的修改

            View v = alertDialog.findViewById(com.android.internal.R.id.xxx);            v.setXxx();


0 0
原创粉丝点击