如何避免这种图形问题?

时间:2015-11-16 11:41:32

标签: android scrollview

这是一个带滚动视图的弹出窗口...如何避免这种情况?

Normal case

来这个

Messed up case

我需要保持滚动属性,因为你可以看到有一些按钮可以添加更多的edittext字段。

这是我的popwindow的XML代码:

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

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/createServiceElement"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<LinearLayout
android:id="@+id/createServiceElementLinear"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="vertical" >

<LinearLayout
    android:id="@+id/name"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="15dp"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/serviceNameText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginStart="10dp"
        android:text="@string/serviceName"
        android:textColor="@color/bg_register" />

    <EditText
        android:id="@+id/serviceNameEdit"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_gravity="center_horizontal"
        android:layout_marginEnd="10dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginStart="10dp"
        android:layout_marginTop="5dp"
        android:layout_weight="1"
        android:background="@drawable/glow_edittext"
        android:ems="10"
        android:inputType="text"
        android:textColor="@color/white" >

        <requestFocus />
    </EditText>
</LinearLayout>

<LinearLayout
    android:id="@+id/type"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/serviceTypeText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginStart="10dp"
        android:layout_marginTop="5dp"
        android:text="@string/serviceType"
        android:textColor="@color/bg_register" />

    <EditText
        android:id="@+id/serviceTypeEdit"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_gravity="center_horizontal"
        android:layout_marginEnd="10dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginStart="10dp"
        android:layout_marginTop="5dp"
        android:layout_weight="1"
        android:background="@drawable/glow_edittext"
        android:ems="10"
        android:inputType="text"
        android:textColor="@color/white" >

    </EditText>
</LinearLayout>

<LinearLayout
    android:id="@+id/address"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/serviceAddressText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginStart="10dp"
            android:layout_marginTop="5dp"
            android:text="@string/serviceAddress"
            android:textColor="@color/bg_register" />

        <ImageButton
            android:id="@+id/addMore1"
            android:layout_width="20dp"
            android:layout_height="20dp"
            android:layout_gravity="center"
            android:layout_marginLeft="10dp"
            android:layout_marginStart="10dp"
            android:layout_marginTop="4dp"
            android:background="@drawable/addpink"
            android:contentDescription="@string/addService" />
    </LinearLayout>

    <EditText
        android:id="@+id/serviceAddressEdit"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_gravity="center_horizontal"
        android:layout_marginEnd="10dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginStart="10dp"
        android:layout_marginTop="5dp"
        android:layout_weight="1"
        android:background="@drawable/glow_edittext"
        android:ems="10"
        android:inputType="text|textPostalAddress"
        android:textColor="@color/white" >

    </EditText>
</LinearLayout>

<LinearLayout
    android:id="@+id/phoneNumbers"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/servicePhoneText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginStart="10dp"
            android:layout_marginTop="5dp"
            android:text="@string/servicePhone"
            android:textColor="@color/bg_register" />

        <ImageButton
            android:id="@+id/addMore2"
            android:layout_width="20dp"
            android:layout_height="20dp"
            android:layout_marginLeft="10dp"
            android:layout_marginStart="10dp"
            android:layout_marginTop="6dp"
            android:background="@drawable/addpink"
            android:contentDescription="@string/addService" />
    </LinearLayout>

    <EditText
        android:id="@+id/servicePhoneEdit"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_gravity="center_horizontal"
        android:layout_marginEnd="10dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginStart="10dp"
        android:layout_marginTop="4dp"
        android:layout_weight="1"
        android:background="@drawable/glow_edittext"
        android:ems="10"
        android:inputType="phone"
        android:textColor="@color/white" >

    </EditText>
</LinearLayout>

<LinearLayout
    android:id="@+id/description"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/serviceDescriptionText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginStart="10dp"
            android:layout_marginTop="5dp"
            android:text="@string/serviceDescription"
            android:textColor="@color/bg_register" />

        <ImageButton
            android:id="@+id/addMore3"
            android:layout_width="20dp"
            android:layout_height="20dp"
            android:layout_marginLeft="10dp"
            android:layout_marginStart="10dp"
            android:layout_marginTop="6dp"
            android:background="@drawable/addpink"
            android:contentDescription="@string/addService" />
    </LinearLayout>

    <EditText
        android:id="@+id/serviceDescriptionEdit"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_gravity="center_horizontal"
        android:layout_marginEnd="10dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginStart="10dp"
        android:layout_marginTop="5dp"
        android:layout_weight="1"
        android:background="@drawable/glow_edittext"
        android:ems="10"
        android:inputType="text"
        android:textColor="@color/white" >

    </EditText>
</LinearLayout>

<Button
    android:id="@+id/confirmAdd"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_marginBottom="20dp"
    android:layout_marginEnd="50dp"
    android:layout_marginLeft="50dp"
    android:layout_marginRight="50dp"
    android:layout_marginStart="50dp"
    android:layout_marginTop="30dp"
    android:background="@drawable/glow_edittext"
    android:contentDescription="@string/addService"
    android:text="@string/addService"
    android:textColor="@color/white" />

</LinearLayout>

2 个答案:

答案 0 :(得分:0)

在你调用对话框的地方,只需调用此行,这样你的对话框就会覆盖你的布局,其余的背景也会很亮,所以这个问题可能在任何观点都不会发生。

LayoutInflater f = LayoutInflater.from(this);
            View view = f.inflate(R.layout.popup_activity, null);
            dialog = new Dialog(this);
            dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
            dialog.getWindow().setBackgroundDrawable(
                    new ColorDrawable(android.graphics.Color.TRANSPARENT));
            dialog.setContentView(view);
            dialog.setCanceledOnTouchOutside(false);
            dialog.show();

答案 1 :(得分:0)

尝试将此行添加到AndroidManifest.xml文件中的活动:

android:windowSoftInputMode="adjustPan"