pantalla - full screen dialog android studio
Popup(usando PopupWindow o Dialog) llena el ancho de la pantalla sin ningĂșn motivo aparente (1)
Este es tu problema:
<Button
android:id="@+id/jobview_pickup_start_submit"
android:layout_width="fill_parent"
...
Cambia eso de "fill_parent" a "wrap_content" o "match_parent"
¡Estoy tratando de hacer que una ventana emergente se comporte! =)
El problema es que la ventana emergente "llena el ancho" de toda la pantalla, a pesar de que el diseño dice claramente que debe ser "wrap_content". No importa si uso Dialog o PopupWindow.
Primero, el diseño XML de la ventana emergente, 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>
Y el código que estoy usando:
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);
También he intentado esto:
Dialog dialogManualStart = new Dialog (MainActivity.this); dialogManualStart.getWindow (). setBackgroundDrawableResource (R.color.transparent); dialogManualStart.requestWindowFeature (MainActivity.this.getWindow (). FEATURE_NO_TITLE); dialogManualStart.setContentView (entrada); dialogManualStart.show ();
Y siempre, sin importar el código que uso, se ve así:
Como puede ver, siempre llena el ancho de la pantalla.
Pregunta: ¿Alguien puede decirme por qué?
======== EDIT 1 =============
Cambié el botón a "wrap_content" (de acuerdo con la sugerencia de Boogers), y luego se ve así:
Este es un comportamiento muy extraño, no es lo que esperaba.
Si lo cambio a "match_parent", vuelve a "ancho completo", es decir, se extiende completamente de izquierda a derecha.