2015-08-04 3 views
3

Я хочу, чтобы мой диалог не соответствовал всему экрану, как показано на рисунке. Как я должен сделать так, чтобы это было не так долго (высота). enter image description hereСделать диалог меньше на экране

public class SidemenuInfoDialogFragment extends DialogFragment { 

     @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     RelativeLayout layout = (RelativeLayout) inflater.inflate(R.layout.sidemenu_info_main, container, true); 
     return layout; 
     } 

     @Override 
     public Dialog onCreateDialog(Bundle savedInstanceState) { 
     Dialog dialog = new Dialog(new ContextThemeWrapper(getActivity(), R.style.Theme_Window_NoMinWith)); 
      dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 

      return dialog; 
      } 


} 

The View:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:orientation="vertical" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentBottom="true" 
       android:id="@+id/sidemenu_info_main_relative"> 


      <TextView 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:id="@+id/text1" 
        android:text="TEST TEXT "/> 


</RelativeLayout> 

Позвольте мне знать, если есть что-то еще нужно, чтобы быть в состоянии помочь мне встать на правильный путь фиксации этого.

ответ

1

Попробуйте изменить вам XML:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:orientation="vertical" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:id="@+id/sidemenu_info_main_relative"> 


     <TextView 
       android:layout_width="100dp" 
       android:layout_height="40dp" 
       android:id="@+id/text1" 
       android:text="TEST TEXT "/> 

    </RelativeLayout> 

Если это не работает с вами здесь другой подход, который я обычно делаю:

public class PopUp { 
public void poupUP(final Activity activity) { 
    final Dialog dialog = new Dialog(activity, R.style.dialogwithoutTitle); 
    dialog.getWindow().setBackgroundDrawable(new  ColorDrawable(android.graphics.Color.TRANSPARENT)); 
    //here add the layout 
    dialog.setContentView(R.layout.pop_up); 
    // The comments are to change the position of the alert dialogu 
    // WindowManager.LayoutParams wmlp = dialog.getWindow().getAttributes(); 
    //wmlp.gravity = Gravity.TOP | Gravity.END; 
    //wmlp.x = 100; //x position 
    //wmlp.y = 100; //y position 


    dialog.show(); 
} 

}

Тогда везде, где вам хочу показать это:

PopUp p = new PopUp(); 
p.popUP(); 
+0

Это сработало для меня, изменив xml. спасибо –

+0

@ Miriana Itani не дает фиксированных значений по высоте и ширине, так как вы не знаете размер вашего текста (ваш контент), и они имеют тенденцию меняться на разных устройствах. Если текст больше по размеру, он может хорошо пересекаться более 100 дп вашего пространства. Вместо этого используйте wrap_content. –

+0

@AnirudhSharma Я просто дал ответ в качестве примера. Я знаю, как справляться с ростом и шириной. благодаря –

0
RelativeLayout layout = (RelativeLayout) inflater.inflate(R.layout.sidemenu_info_main, container, false); 
+1

Хотя этот фрагмент кода может решить вопрос, в том числе [ объяснение] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) действительно помогает улучшить качество вашего сообщения. Помните, что вы отвечаете на вопрос читателей в будущем, и эти люди могут не знать причин вашего предложения кода. –

2

Дайте TextView в диалоговом высоты вида и ширины, как "wrap_content" .like:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:orientation="vertical" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:id="@+id/sidemenu_info_main_relative"> 

    <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/text1" 
      android:text="TEST TEXT "/> 

</RelativeLayout> 
0

Попробуйте это:

alert.getWindow().setLayout(dialogWidth, LayoutParams.WRAP_CONTENT); 
WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams(); 
layoutParams.copyFrom(alert.getWindow().getAttributes()); 
layoutParams.x = xPosition; 
layoutParams.y = yPosition; 
alert.getWindow().setAttributes(layoutParams); 
Смежные вопросы