7

ポップアップを動作させようとしています!=)

問題は、レイアウトに「wrap_content」と明記されていても、ポップアップが画面全体の「幅いっぱい」になることです。DialogとPopupWindowのどちらを使用してもかまいません。

まず、ポップアップのXMLレイアウトpopup_message.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_margin="20dp"
    android:background="@android:color/transparent"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:orientation="horizontal"
        android:layout_gravity="center" >

        <TextView
            android:layout_width="match_parent"
            android:layout_height="fill_parent"
            android:layout_gravity="center"
            android:background="@android:color/transparent"
            android:gravity="center_vertical|center_horizontal"
            android:orientation="horizontal"
            android:paddingLeft="10dp"
            android:text="@string/new_message"
            android:textColor="#000000"
            android:textAllCaps="true" >

        </TextView>
    </LinearLayout>

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="15dp"
        android:background="#ffffff"
        android:gravity="center_horizontal"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/popup_message_textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textCursorDrawable="@null" >
        </TextView>

        <Button
            android:id="@+id/jobview_pickup_start_submit"
            android:layout_width="fill_parent"
            android:layout_height="35dp"
            android:layout_below="@+id/popup_message_textView"
            android:layout_gravity="center_vertical|center_horizontal"
            android:layout_marginBottom="15dp"
            android:layout_marginTop="15dp"
            android:gravity="center_horizontal"
            android:text="Confirm"
            android:textColor="#000000" />
    </RelativeLayout>
</LinearLayout>

そして私が使用しているコード:

LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View input = inflater.inflate(R.layout.popup_message, null);
PopupWindow pw = new PopupWindow(input, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, true);
View v = findViewById(R.id.main_deviceInfoBar);
pw.showAtLocation(v, Gravity.CENTER, 0, 0);

私もこれを試しました:

ダイアログdialogManualStart=new Dialog(MainActivity.this); dialogManualStart.getWindow()。setBackgroundDrawableResource(R.color.transparent); dialogManualStart.requestWindowFeature(MainActivity.this.getWindow()。FEATURE_NO_TITLE); dialogManualStart.setContentView(input); dialogManualStart.show();

そして、私が使用するコードに関係なく、常に次のようになります。

ここに画像の説明を入力してください

ご覧のとおり、常に画面の幅全体に表示されます。

質問:誰かが理由を教えてもらえますか?

========編集1=============

Buttonを「wrap_content」に変更しました(Boogersの提案による)。すると、次のようになります。

ここに画像の説明を入力してください

これは非常に奇妙な振る舞いであり、私が期待したものではありません。

これを「match_parent」に変更すると、「全幅」に戻ります。つまり、左から右に伸びます。

4

1 に答える 1

0

これはあなたの問題です:

<Button
            android:id="@+id/jobview_pickup_start_submit"
            android:layout_width="fill_parent"
...

それを「fill_parent」から「wrap_content」または「match_parent」に変更します

于 2013-01-24T14:32:08.380 に答える