2014-01-06 3 views
0

создать пользовательский фрагмент и задать ему некоторое название:Названия в FragmentDialog не может отображаться полностью

 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     getDialog().setTitle(R.string.personalAuthDialogMessage); 
     getDialog().setCanceledOnTouchOutside(false); 
     View v = inflater.inflate(R.layout.personal_pass_dialog, null); 
     personalPasswordEditText = (EditText) v.findViewById(R.id.personalPasswordEditText); 
     buttonPositive = (Button) v.findViewById(R.id.personAuthButtonPositive); 
     buttonNegative = (Button) v.findViewById(R.id.personAuthButtonNegative); 
     buttonPositive.setOnClickListener(this); 
     buttonNegative.setOnClickListener(this); 
     return v; 
    } 

Когда я вызываю его в своей деятельности все в порядке, за исключением размера заголовка не помещается на экран. Это выглядит так: enter image description here

Оригинальное сообщение: «Пожалуйста, подтвердите свой пароль».

UPD. Код макета:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:orientation="vertical" 
      android:id="@+id/personalDialogLayout" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent"> 
<EditText 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="20dp" 
     android:inputType="textPassword" 
     android:id="@+id/personalPasswordEditText" 
     android:layout_gravity="center"/> 
<LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 
    <Button 
      android:layout_width="match_parent" 
      android:layout_height="80dip" 
      android:text="@string/confirmOk" 
      android:id="@+id/personAuthButtonPositive" android:layout_weight="1"/> 
    <Button 
      android:layout_width="match_parent" 
      android:layout_height="80dip" 
      android:text="@string/confirmCancel" 
      android:id="@+id/personAuthButtonNegative" android:layout_weight="1"/> 
</LinearLayout> 

+0

Показать код макета, который вы накачивания в вашем диалоге. – GrIsHu

ответ

0

У вас есть дифферент опции для обработки этого. В принципе вы можете заставить расположение диалогового окна, чтобы увеличить его ширину:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:orientation="vertical" 
      android:id="@+id/personalDialogLayout" 
      android:layout_width="300dp" 
      android:layout_height="fill_parent"> 

, но это решение не очень удобно, потому что некоторые экран меньше, если вы хотите, чтобы ваш заголовок, чтобы изменить его может не поместиться, и т.д ...

Так что вы можете сделать, это удалить заголовок из диалогового окна, с помощью этого кода:

setStyle(DialogFragment.STYLE_NO_TITLE, 0); 

и обрабатывать титул самостоятельно:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:orientation="vertical" 
      android:id="@+id/personalDialogLayout" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent"> 
<TextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="20dp" 
     android:id="@+id/dialogTitle"/> 

<EditText 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="20dp" 
     android:inputType="textPassword" 
     android:id="@+id/personalPasswordEditText" 
     android:layout_gravity="center"/> 
<LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 
    <Button 
      android:layout_width="match_parent" 
      android:layout_height="80dip" 
      android:text="@string/confirmOk" 
      android:id="@+id/personAuthButtonPositive" android:layout_weight="1"/> 
    <Button 
      android:layout_width="match_parent" 
      android:layout_height="80dip" 
      android:text="@string/confirmCancel" 
      android:id="@+id/personAuthButtonNegative" android:layout_weight="1"/> 
</LinearLayout> 

и установить название:

View v = inflater.inflate(R.layout.personal_pass_dialog, null); 
TextView title = (TextView) v.findViewById(R.id.dialogTitle); 
title.setText(R.string.personalAuthDialogMessage); 
Смежные вопросы