Here is my code for showing a custom fullscreen dialog.
My problem is when the root view of Dialog is LinearLayout, the dialog is not fullscreen but if it is RelativeLayout then dialog fullscreen
public void showDialog(Context context){
final Dialog dialog = new Dialog(context);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.dialog_increase_repeattime);
dialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
Button dialogButton = (Button) dialog.findViewById(R.id.btn_dialog);
dialogButton.setOnClickListener(new View.OnClickListener() {
...
});
dialog.show();
}
Here is dialog layout xml using LinearLayout
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#ffffffff">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="20dp"
android:text="OK"
android:id="#+id/btn_dialog"
android:gravity="center_vertical|center_horizontal"
android:layout_centerHorizontal="true"
/>
</LinearLayout>
Using RelativeLayout
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#ffffffff">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="20dp"
android:text="OK"
android:id="#+id/btn_dialog"
android:gravity="center_vertical|center_horizontal"
android:layout_centerHorizontal="true"
/>
</RelativeLayout>
Why this happened? Any help or suggestion would be great appreciated.
Related
I want to display custom dialog at center vertical position but it appears at top.Above the first one is my xml file and second one is output after running in real device. Here is the code of dialog.
//alert dialog code
//add theme to display on whole page
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this,
android.R.style.Theme_Holo_Light_NoActionBar_TranslucentDecor);
LayoutInflater inflater = this.getLayoutInflater();
//custom layout
View dialogView = inflater.inflate(R.layout.custom_bar, null);
dialogBuilder.setView(dialogView);
//button to close dialog box
Button closeButton = (Button)
dialogView.findViewById(R.id.closeButton);
final AlertDialog alertDialog = dialogBuilder.create();
closeButton.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View view) {
alertDialog.dismiss();
}
});
//show dialog
alertDialog.show();
In your main layout of custom_bar put android:gravity="center"
You should write like this.
AlertDialog dialog = new AlertDialog.Builder(this, R.style.Dark).create();
if (dialog.getWindow() != null)
{
Window window = dialog.getWindow();
window.setLayout(WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT);
window.setGravity(Gravity.CENTER);
dialog.getWindow().setBackgroundDrawableResource(android.R.color.background_dark);
}
This will show the alert dialog to the center of the screen.
Use this code to your Alert dialog to the center of the screen.
Add this in your class and change the code as per your needed.
//Internet Alert Dialog
public static void InternetAlert(final Context _A) {
final Dialog dialog = new Dialog(_A, R.style.CustomDialogStyle);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setCanceledOnTouchOutside(true);
dialog.setContentView(R.layout.dialog_internet_connection);
final Button Yes = (Button) dialog.findViewById(R.id.btn_yes);
Yes.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
}
If you want to fill the entire screen Just change the FrameLayout Height to match_parent
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="320dp"
android:layout_height="wrap_content"
android:layout_gravity="center">
<android.support.v7.widget.CardView
android:id="#+id/cv_SignOut"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="?attr/actionBarSize"
android:layout_marginLeft="#dimen/activity_horizontal_margin"
android:layout_marginRight="#dimen/activity_horizontal_margin"
android:layout_marginTop="?attr/actionBarSize"
app:cardBackgroundColor="#0D000000"
app:cardCornerRadius="6dp"
app:cardElevation="3dp"
app:cardUseCompatPadding="true">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#android:color/transparent">
<TextView
android:id="#+id/title_SignOut"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:background="#color/textViewColorPrimary"
android:gravity="center"
android:minHeight="?attr/actionBarSize"
android:text="#string/info"
android:textAppearance="?attr/textAppearanceSearchResultTitle"
android:textColor="#color/colorWhite" />
<TextView
android:id="#+id/signOutAlert"
style="#android:style/TextAppearance.DeviceDefault.SearchResult.Subtitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="#+id/title_SignOut"
android:background="#color/colorBackground"
android:gravity="center"
android:minHeight="120dip"
android:paddingBottom="#dimen/activity_horizontal_margin"
android:paddingLeft="#dimen/activity_horizontal_margin"
android:paddingRight="#dimen/activity_horizontal_margin"
android:paddingTop="#dimen/activity_horizontal_margin"
android:text="#string/info_internet_check"
android:textColor="#color/colorPrimary" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="#+id/signOutAlert"
android:background="#color/white"
android:orientation="horizontal"
android:weightSum="1">
<Button
android:id="#+id/btn_yes"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_marginRight="2dip"
android:layout_weight="1"
android:background="#color/colorBackground"
android:gravity="center"
android:minHeight="?attr/actionBarSize"
android:text="OK"
android:textAppearance="?attr/textAppearanceSearchResultTitle"
android:textColor="#color/colorAccent" />
</LinearLayout>
</RelativeLayout>
</android.support.v7.widget.CardView>
</FrameLayout>
Hope this may helps :)
<?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:gravity="center_vertical"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="abc"
android:textSize="30sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="abc"
android:textSize="30sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="abc"
android:textSize="30sp" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Done" />
</LinearLayout>
</LinearLayout>
------
dialogBuilder.showAsDropDown(dialogView, 50, 400, Gravity.CENTER);
alertDialog.show();
----
Add that line to your code. it will set the popup window to center.
I am using DialogFragment in my project and I'am disabling the Title using
getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);
but my dialog has become crooked. I want to leave the dialog as it is and just remove Title. How can I do?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#ff2d35ff">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginRight="39dp"
android:layout_marginLeft="39dp"
android:layout_gravity="center_horizontal"
android:background="#ff6cff23">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ItemName"
android:id="#+id/itemName"
android:layout_weight="1"
android:background="#ffd861ff"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ItemPrice"
android:id="#+id/itemPrice"
android:layout_weight="1"
android:background="#ff2ff8ff"/>
</LinearLayout>
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:id="#+id/itemImage"
android:layout_gravity="center_horizontal"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="some test"
android:id="#+id/textView9"
android:layout_gravity="center_horizontal"/>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:background="#ffffff2c">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="-"
android:id="#+id/itemMinus"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="1"
android:id="#+id/textView11"
android:layout_weight="1"
android:gravity="center_horizontal"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="+"
android:id="#+id/itemPlus"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_gravity="center_horizontal"
android:gravity="center_horizontal">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="#+id/itemAdd"
android:src="#drawable/positive"
android:background="#android:color/transparent"/>
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="#+id/itemCancel"
android:src="#drawable/negative"
android:background="#android:color/transparent"/>
</LinearLayout>
I realized that when I remove Title dialog can not found match_parent
I usually override onCreate in my DialogFragment's subclass and call setStyle(STYLE_NO_TITLE, 0);
#Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setStyle(STYLE_NO_TITLE, 0);
}
Here you can find the documentation for setStyle. The documentation for STYLE_NO_TITLE says:
Style for setStyle(int, int): don't include a title area.
you must override onCreateDialog method in your dialogfragment class.
#Override
public Dialog onCreateDialog(final Bundle savedInstanceState) {
RelativeLayout root = new RelativeLayout(getActivity());
root.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
final Dialog dialog = new Dialog(getActivity());
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(root);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.WHITE));
dialog.getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
return dialog;
}
You can implement is simpler way like below code -
Dialog dialog = new Dialog(mContext, android.R.style.Theme_Black_NoTitleBar);
or
Dialog dialog = new Dialog(mContext, android.R.style.Theme_Black_NoTitleBar_Fullscreen);
My activity should show a custom dialog with some options and depending upon options should commit a layout change without dismissing the dialog. Is it possible? Any ideas?
try this,
First makecustom.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ImageView
android:id="#+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="#drawable/cat" />
<TextView
android:id="#+id/textView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="20dp"
android:text="Hey there i am cat"
android:textAppearance="?android:attr/textAppearanceLarge" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</RelativeLayout>
then in activity_main.xml add following code,
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<Button
android:id="#+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="Button" />`</RelativeLayout>`
then in MainActivity.java,
public class MainActivity extends Activity {
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button B = (Button) findViewById(R.id.button1);
B.setOnClickListener(new OnClickListener(){
public void onClick(View arg0) {
Dialog d = new Dialog(MainActivity.this);
d.setContentView(R.layout.dialog);
d.setTitle("This is custom dialog box");
d.show();
}
});
}
thats it...
I'm working with custom alertDialog in android and found a problem. My code is simple:
LayoutInflater inflatre = getLayoutInflater();
View v = inflatre.inflate(R.layout.dialog_view, null);
AlertDialog.Builder dialog = new AlertDialog.Builder(EditPageActivity.this);
dialog.setView(v);
dialog.show();
And the layout xml is:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#color/bg"
android:padding="10dp"
android:gravity="center" >
<Button
android:id="#+id/gallery_b"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Gallery" />
<Button
android:id="#+id/photo_b"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="#+id/gallery_b"
android:text="Take Photo" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="#+id/gallery_b"
android:layout_centerHorizontal="true"
android:text="Choose Image"
android:textSize="20sp"
android:textColor="#color/splash_font"
android:layout_marginBottom="10dp" />
But the output is like this:
Feeling helpless after searching google :(...can anyone describe me anything
Try this layout for Dialog, It should work.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#color/bg"
android:padding="10dp"
android:gravity="center">
<TextView
android:id="#+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:text="Choose Image"
android:textSize="20sp"
android:textColor="#color/splash_font"/>
<Button
android:id="#+id/gallery_b"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="#+id/textView1"
android:text="Gallery"
android:layout_marginTop="10dp"/>
<Button
android:id="#+id/photo_b"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="#+id/gallery_b"
android:text="Take Photo" />
</RelativeLayout>
Try this
Dialog dialog = new Dialog(YourActivity.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.yourlayout); // your layout id
Button dialogButton = (Button) dialog
.findViewById(R.id.dialogButtonOK); // button in your layout
// if button is clicked, close the custom dialog
dialogButton.setOnClickListener(new OnClickListener() {
#Override
public void onClick(View v) {
}
});
dialog.show();
//Try this one:
final Dialog dialog = new Dialog(mContext);
dialog.requestWindowFeature((int) Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.your_layout_here);
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
lp.copyFrom(dialog.getWindow().getAttributes());
lp.width = WindowManager.LayoutParams.WRAP_CONTENT;
lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
dialog.getWindow().setAttributes(lp);
dialog.show();
How can I make alert box background color,button size message will be center align,alertbox size.can it is Possible to do.
Please help me
Thank you
Ok. here is the deal. I have used few drawable for my below custom Dialog layout. So you have to create your own Drawables according to the size.
my custom_dialog.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_margin="10dip" android:paddingBottom="10dip"
android:layout_gravity="center_vertical" android:background="#drawable/custom_alert_bg">
<RelativeLayout android:id="#+id/main_layout" android:padding="10dip"
android:layout_width="fill_parent" android:layout_height="wrap_content"
>
<ImageView android:background="#drawable/alert_dialog_icon" android:id="#+id/alert_icon"
android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageView>
<TextView android:id="#+id/alert_title"
android:layout_marginLeft="15dip"
android:layout_toRightOf="#+id/alert_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Alert Title"/>
</RelativeLayout>
<RelativeLayout android:id="#+id/seperator"
android:layout_width="wrap_content"
android:layout_below="#+id/main_layout"
android:layout_height="wrap_content"
android:layout_margin="10dip"
android:background="#drawable/line">
</RelativeLayout>
<RelativeLayout android:id="#+id/alert_description"
android:layout_width="fill_parent"
android:layout_height="70dip"
android:padding="10dip"
android:layout_below="#+id/seperator">
<TextView android:id="#+id/alert_content_text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Alert Content"></TextView>
</RelativeLayout>
<Button android:id="#+id/alert_ok_button"
android:layout_below="#+id/alert_description"
android:layout_margin="10dip"
android:layout_centerHorizontal="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#drawable/alert_ok_button"
android:gravity="center">
</Button>
</RelativeLayout>
Here is the java method to use this layout as your custom dialog,
public static void warningDialog(final Context context,String title,String message){
dialog=new Dialog(context,android.R.style.Theme_Translucent_NoTitleBar);
Window window = dialog.getWindow();
window.setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND,WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
window.setLayout(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT);
dialog.setCancelable(true);
dialog.setCanceledOnTouchOutside(true);
dialog.setContentView(R.layout.custom_dialog);
Button ok=(Button)dialog.findViewById(R.id.alert_ok_button);
TextView alert_title=(TextView)dialog.findViewById(R.id.alert_title);
TextView alert_content=(TextView)dialog.findViewById(R.id.alert_content_text);
alert_title.setText(title);
alert_title.setTextSize(22);
alert_title.setTextColor(Color.WHITE);
alert_content.setText(message);
alert_content.setTextSize(18);
alert_content.setTextColor(Color.WHITE);
ok.setText("ok");
ok.setTextSize(20);
ok.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
dialog.cancel();
}
});
dialog.show();
}
That's it. Your custom dialog is ready..,
Now call this method in your activity,
warningDialog(this,"Alert",msg);