Android AlertDialog自定义布局失真



嗨,我想知道alertdialog如何准确地膨胀自定义xml布局?在我的示例中,当我在eclipse编辑器中查看xml时,它看起来很好,但是当alertdialog构建它时,它看起来完全不同。(遗憾的是,我没有发布截图的声誉)

这是xml文件。可以说,布局被推高了,所以线性布局的下半部分可能占据了页面的2/3,尽管它们的权重只有0.40(如果有人能告诉我所有这些线性布局的替代方案,我会很感激!!)谢谢你

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layout_root"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
 >
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="0.20"
    android:orientation="vertical" >
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="0.98"
        android:orientation="vertical" >
        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_gravity="center_vertical"
            android:paddingLeft="20dp"
            android:paddingTop="32dp"
            android:text="Share with..."
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:textColor="#00C5CD" >
        </TextView>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="0.02"
        android:orientation="vertical" >
        <View
            android:layout_width="fill_parent"
            android:layout_height="1dip"
            android:background="#00C5CD" >
        </View>
    </LinearLayout>
</LinearLayout>
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="0.40"
    android:orientation="vertical" >
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="0.50"
        android:orientation="horizontal" >
        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:layout_weight="0.50"
            android:orientation="vertical" >
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_gravity="center"
                android:layout_weight="0.350"
                android:orientation="vertical" >
            </LinearLayout>
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_gravity="center"
                android:layout_weight="0.350"
                android:orientation="vertical" >
                <ImageView
                    android:id="@+id/iv_prev"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:src="@drawable/facebook" />
            </LinearLayout>
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_gravity="center"
                android:layout_weight="0.150"
                android:orientation="vertical" >
                <TextView
                    android:id="@+id/tv_customize_pill"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:paddingTop="10dp"
                    android:text="Whatsapp"
                    android:textAppearance="?android:attr/textAppearanceSmall" />
            </LinearLayout>
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_gravity="center"
                android:layout_weight="0.150"
                android:orientation="vertical" >
            </LinearLayout>
        </LinearLayout>
        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:layout_weight="0.50"
            android:orientation="vertical" >
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_gravity="center"
                android:layout_weight="0.350"
                android:orientation="vertical" >
            </LinearLayout>
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_gravity="center"
                android:layout_weight="0.350"
                android:orientation="vertical" >
                <ImageView
                    android:id="@+id/iv_preview3"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:src="@drawable/whatsapp" />
            </LinearLayout>
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_gravity="center"
                android:layout_weight="0.150"
                android:orientation="vertical" >
                <TextView
                    android:id="@+id/tv_customize_pillsas"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:paddingTop="10dp"
                    android:text="Whatsapp"
                    android:textAppearance="?android:attr/textAppearanceSmall" />
            </LinearLayout>
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_gravity="center"
                android:layout_weight="0.150"
                android:orientation="vertical" >
            </LinearLayout>
        </LinearLayout>
    </LinearLayout>
</LinearLayout>
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="0.40"
    android:orientation="horizontal" >
    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_gravity="center"
        android:layout_weight="0.50"
        android:orientation="vertical" >
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_gravity="center"
            android:layout_weight="0.150"
            android:orientation="vertical" >
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_gravity="center"
            android:layout_weight="0.350"
            android:orientation="vertical" >
            <ImageView
                android:id="@+id/iv_preview4"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:src="@drawable/email" />
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_gravity="center"
            android:layout_weight="0.150"
            android:orientation="vertical" >
            <TextView
                android:id="@+id/tv_customize_pill4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:paddingTop="10dp"
                android:text="Email"
                android:textAppearance="?android:attr/textAppearanceSmall" />
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_gravity="center"
            android:layout_weight="0.350"
            android:orientation="vertical" >
        </LinearLayout>
    </LinearLayout>
    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.50"
        android:orientation="vertical" >
    </LinearLayout>
</LinearLayout>

好的,我所理解的是,你所需要的只是一个标题和一个类似网格的布局,对吗?如果我是对的,TableLayout可能就是你需要的。

检查这个xml,看看它是否对你有帮助

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView
        android:id="@+id/textView1"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:layout_gravity="center_vertical"
        android:paddingLeft="20dp"
        android:paddingTop="32dp"
        android:text="Share with..."
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="#00C5CD" />
    <View
        android:layout_width="wrap_content"
        android:layout_height="1dp"
        android:background="#00C5CD"/>
    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="4">
        <TableRow
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1">
            <LinearLayout
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:orientation="vertical">
                <ImageView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_launcher"/>
                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center_horizontal"
                    android:text="Some text"/>
            </LinearLayout>
            <LinearLayout
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:orientation="vertical">
                <ImageView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_launcher"/>
                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center_horizontal"
                    android:text="Some text"/>
            </LinearLayout>
        </TableRow>
        <TableRow
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1">
            <LinearLayout
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:orientation="vertical">
                <ImageView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_launcher"/>
                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center_horizontal"
                    android:text="Some text"/>
            </LinearLayout>
            <LinearLayout
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:orientation="vertical">
                <ImageView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_launcher"/>
                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center_horizontal"
                    android:text="Some text"/>
            </LinearLayout>
        </TableRow>
    </TableLayout>
</LinearLayout>

最新更新