User dialog too small

I have an android activity that implements a user dialog. The application works fine, but the dialogue is too small, I want to display a larger dialogue. How can i achieve this? Here is my xml layout

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/white" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:background="@drawable/view_more_borders"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:orientation="horizontal" android:layout_marginTop="4dp" android:gravity="center_vertical"> <TextView android:id="@+id/share_amount" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="Company Name:" android:textAppearance="?android:attr/textAppearanceSmall" android:textColor="@color/nice_blue" android:typeface="sans" /> <TextView android:id="@+id/textViewCompanyName" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1.80" android:text=" " android:textAppearance="?android:attr/textAppearanceSmall" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:layout_marginTop="4dp" android:gravity="center_vertical"> <TextView android:id="@+id/textView5" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="Price per share:" android:textAppearance="?android:attr/textAppearanceSmall" android:textColor="@color/nice_blue" /> <TextView android:id="@+id/textViewprice_pershare" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="2" android:layout_alignBaseline="@+id/Yesterday" android:layout_alignBottom="@+id/Yesterday" android:layout_marginLeft="38dp" android:fontFamily="sans-serif" android:layout_toRightOf="@+id/company" android:text=" " android:textAppearance="?android:attr/textAppearanceSmall" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:layout_marginTop="4dp" android:gravity="center_vertical"> <TextView android:id="@+id/textView4" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="Total cost:" android:textAppearance="?android:attr/textAppearanceSmall" android:textColor="@color/nice_blue" /> <TextView android:id="@+id/textview_totalcost" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="2" android:layout_alignBaseline="@+id/Yesterday" android:layout_alignBottom="@+id/Yesterday" android:layout_marginLeft="38dp" android:fontFamily="sans-serif" android:layout_toRightOf="@+id/company" android:text=" " android:textAppearance="?android:attr/textAppearanceSmall" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:layout_marginTop="4dp" android:gravity="center_vertical"> <TextView android:id="@+id/textView3" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="Number of shares:" android:textAppearance="?android:attr/textAppearanceSmall" android:textColor="@color/nice_blue" /> <EditText android:id="@+id/shareNumber" android:layout_width="0dp" android:layout_weight="2" android:layout_height="wrap_content" android:inputType="number" android:fontFamily="sans-serif" android:textSize="12sp" > <requestFocus /> </EditText> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:layout_marginTop="4dp" android:gravity="center_vertical"> <TextView android:id="@+id/textView2" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="Payment method:" android:textAppearance="?android:attr/textAppearanceSmall" android:textColor="@color/nice_blue" /> <Spinner android:id="@+id/spinner_paymentmode" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="2" /> </LinearLayout> </LinearLayout> <Button android:id="@+id/button_buy_shares" style="@style/ButtonText" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/blue_button" android:text="Buy" /> 

And here is my conclusion. I want to increase the width and height of the dialog. enter image description here

And my java file

 public class MyDialogFragment extends DialogFragment { public MyDialogFragment() { } private EditText mEditText; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.dialogfragment, container); // mEditText = (EditText) view.findViewById(R.id.txt_your_name); // getDialog().setTitle("Hello"); getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE); return view; } } 
+6
source share
9 answers

Resize the dialog at runtime:

 yourDialog.show(); yourDialog.getWindow().setLayout((6 * width)/7, LayoutParams.WRAP_CONTENT); 

You can do this for both dimensions, in my example I just changed the width. Hope this helps!

EDIT

I forgot to mention where I took the width:

 DisplayMetrics metrics = getResources().getDisplayMetrics(); int width = metrics.widthPixels; int height = metrics.heightPixels; 

EDIT 2

Try this code:

 Dialog yourDialog = dialogFragment.getDialog(); yourDialog.getWindow().setLayout((6 * width)/7, (4 * height)/5); 
+23
source

Setting up Android: minWidth and android: minHeight in the custom layout does the trick for me.

+6
source
 <style name="full_screen_dialog" parent="@android:style/Theme.Dialog"> <item name="android:windowNoTitle">true</item> <item name="android:windowFullscreen">true</item> <item name="android:windowIsFloating">true</item> <item name="android:windowContentOverlay">@null</item> <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item> <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:minWidth" type="dimen">600dp</item> </style> 

Use this in the style.xml file and use this style in the dialog class

+3
source

Dialogs are determined by their contents. You can add padding and margins on the external layout to consume more space, but this will not spread the views inside.

+1
source

The correct solution is to override the onCreateDialog method, not onCreateView , and create a dialog with AlertDialog.Builder , as described in the document: http://developer.android.com/reference/android/app/DialogFragment.html#AlertDialog

+1
source

put below line in onCreate

 setStyle(DialogFragment.STYLE_NO_TITLE, android.R.style.Theme_Holo_Light_Dialog_NoActionBar_MinWidth); 

original answer

+1
source

try it

For the width and width of the settings dialog to fit the device screen

  Display display; int DisplayWidth, DisplayHeight, DialogWidth, DialogHeight; Dialog dialog; display =((WindowManager)activity_context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); DisplayWidth = display.getWidth(); DisplayHeight = display.getHeight(); if(DisplayHeight > DisplayWidth) { DialogWidth = (6 * DisplayWidth) / 7 ; DialogHeight = (4 * DisplayHeight) / 5 ; } else { DialogWidth = (6 * DisplayWidth) / 9 ; DialogHeight = (4 * DisplayHeight) / 5 ; } dialog = new Dialog(activity_context); // Set your dialog width and height dynamically as per your screen. Window window = dialog.getWindow(); window.setLayout(DialogWidth,DialogHeight); window.setGravity(Gravity.CENTER); dialog.show(); 
0
source

try setting android:layout_height to some value for the LinearLayout base

eg

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" <!-- right here --> android:layout_height="100dp" android:background="@color/white" android:orientation="vertical" > 
0
source

Add android: minWidth / android: minHeight to root mode. See the example below:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:minWidth="300dp" android:minHeight="500dp"> 
0
source

Source: https://habr.com/ru/post/955086/


All Articles