Je n'arrive pas à contrôler la largeur de la boîte de dialogue. J'ai une disposition simple comme ça`
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:theme="@Android:style/Theme.Dialog">
<ScrollView
Android:orientation="vertical"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent">
<LinearLayout Android:orientation="vertical"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent">
<TextView
Android:id="@+id/name_Prompt_view"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:text="@string/name_Prompt"
Android:padding="10dip"/>
<EditText
Android:id="@+id/name_inp"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:lines="1"
Android:maxLines="1"
Android:maxLength="48"
Android:inputType="text" />
<TextView
Android:id="@+id/t1_Prompt_view"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:text="@string/t1_Prompt"
Android:padding="10dip"/>
<Spinner
Android:id="@+id/t1_inp"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:lines="1"
Android:maxLines="1"
Android:maxLength="48"
Android:inputType="text"
Android:singleLine="true"
Android:layout_weight="1"
Android:entries= "@array/t1_allowed_values" />
</LinearLayout>
</ScrollView>
</LinearLayout>
pour une raison quelconque, la boîte de dialogue n'est que suffisamment large pour le champ de saisie de texte d'environ 11 caractères de large. Comment puis-je faire en sorte que la largeur de la boîte de dialogue remplisse l'écran?
J'ai eu le même problème.
J'ai utilisé le code suivant pour créer une boîte de dialogue fill_parent et cela a bien fonctionné.
public class SharePost extends Dialog
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.adaptor_contentsharepost);
LayoutParams params = getWindow().getAttributes();
params.height = LayoutParams.FILL_PARENT;
getWindow().setAttributes((Android.view.WindowManager.LayoutParams) params);
}
}
disposition
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical"
Android:id="@+id/dialogWidth"
Android:layout_width="match_parent"
Android:layout_height="match_parent">
contents here
</LinearLayout>
J'utilise:
getWindow().setLayout(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
Définissez une largeur minimale dans la mise en page la plus haute.
Android:minWidth="300dp"
Par exemple:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout Android:orientation="vertical" Android:layout_width="fill_parent" Android:layout_height="fill_parent"
xmlns:Android="http://schemas.Android.com/apk/res/Android" Android:minWidth="300dp">
<!-- Put remaining contents here -->
</LinearLayout>
Comme Matthias le souligne Comment puis-je obtenir une fenêtre d'activité de style Dialogue pour remplir l'écran? La solution UMAR fonctionne, mais uniquement si les attributs de la fenêtre sont définis APRÈS que setContentView () soit appelé.
Essaye ça. Ça marche pour moi.
dialog = new Dialog(Activity.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.feedback_popup);
dialog.setCancelable(false);
dialog.setCanceledOnTouchOutside(false);
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
lp.copyFrom(dialog.getWindow().getAttributes());
lp.width = WindowManager.LayoutParams.MATCH_PARENT;
lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
lp.gravity = Gravity.CENTER;
dialog.getWindow().setAttributes(lp);
Depuis l'API 8, FILL_PARENT est obsolète. Utilisez plutôt MATCH_PARENT.
params.height = LayoutParams.MATCH_PARENT;