it-swarm.com.ru

Android заставляет диалог появляться в полноэкранном режиме

Мне нужно диалоговое окно, чтобы заполнить экран, за исключением некоторого пространства сверху и снизу ... Я искал решение, но не смог найти его, вероятно, потому что я объявляю его в onClickListener. Может кто-нибудь дать решение?

Код деятельности:

sort.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                AlertDialog.Builder sort = new AlertDialog.Builder(HomeScreen.this);
                // Get the layout inflater
                LayoutInflater inflater = HomeScreen.this.getLayoutInflater();
                View sortView = inflater.inflate(R.layout.sort_layout, null);
                sort.setView(sortView);
                sort.create().show();
            }
        });

XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent"
    Android:layout_marginBottom="50dp"
    Android:layout_marginTop="50dp"
    Android:background="@color/white"
    Android:orientation="vertical" Android:layout_gravity="center">
    + some more stuff here I dont think it's relevant
</LinearLayout>

enter image description here

22
Mihai Bratulescu

здесь установите ширину экрана и ширину в диалоге

WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
    lp.copyFrom(dialog.getWindow().getAttributes());
    lp.width = width;
    lp.height = height;
    dialog.getWindow().setAttributes(lp);

или в ваших стилях создайте такой стиль

 <style name="DialogTheme" parent="Android:Theme.Dialog">

    <item name="Android:layout_width">fill_parent</item>
    <item name="Android:layout_height">fill_parent</item>


    <!-- No backgrounds, titles or window float -->
    <item name="Android:windowBackground">@null</item>
    <item name="Android:windowNoTitle">true</item>
    <item name="Android:windowIsFloating">false</item>
</style>

создайте объект диалога, подобный этому

dialog = new Dialog(this, R.style.DialogTheme);

Правка ::

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

WindowManager manager = (WindowManager) getSystemService(Activity.WINDOW_SERVICE);
    int width, height;
    LayoutParams params;

    if (Build.VERSION.SDK_INT > VERSION_CODES.FROYO) {
        width = manager.getDefaultDisplay().getWidth();
        height = manager.getDefaultDisplay().getHeight();
    } else {
        Point point = new Point();
        manager.getDefaultDisplay().getSize(point);
        width = point.x;
        height = point.y;
    }
41
kalyan pvs

сначала создайте собственный стиль для диалога в файле style.xml:

<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>
</style>

Затем после установки этой темы в диалоге оповещения:

 AlertDialog.Builder builder = new AlertDialog.Builder(new ContextThemeWrapper(this,  R.style.full_screen_dialog));

Или Вы можете вызвать новое действие и назначить этот пользовательский стиль этому действию в качестве темы в файле манифеста ...

11
Piyush

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

mDialog.setContentView(R.layout.my_custom_dialog);
mDialog.getWindow().setBackgroundDrawable(null);

после добавления этого, мой диалог появляется на всю ширину экрана.

3
Rahul Sharma

попробуй это

активность, для которой установлен стиль Theme.Dialog, сделайте это:

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.your_layout);

getWindow().setLayout(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
}
3
mdDroid

Сделать объект как ниже тема

Dialog objD = new Dialog(this,     Android.R.style.Theme_Translucent_NoTitleBar);
2
Prashant Maheshwari Andro

Я думаю, вы должны попробовать это:

Внутри dialogFragment :

@Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setStyle(DialogFragment.STYLE_NORMAL, Android.R.style.Theme_Black_NoTitleBar_Fullscreen);
        }
0
siddharth patel
   Dialog dialog2 = new Dialog(context, R.style.DialogTheme);
    dialog2.requestWindowFeature(Window.FEATURE_NO_TITLE);
    dialog2.getWindow().setBackgroundDrawable(null);
    dialog2.setContentView(R.layout.dialog_img);
    WindowManager.LayoutParams lp = dialog2.getWindow().getAttributes();
    Window window = dialog2.getWindow();
    lp.copyFrom(window.getAttributes());
    lp.width = WindowManager.LayoutParams.MATCH_PARENT;
    lp.height = WindowManager.LayoutParams.MATCH_PARENT;
    window.setAttributes(lp);
    lp.gravity = Gravity.CENTER;
    final ImageView imgprofile=(ImageView)dialog2.findViewById(R.id.img_centre);
    Picasso.with(context)
            .load(arrayImages.get(position).get("image"))
            .resize(800,1000)
            .centerInside()
            .into(imgprofile, new Callback() {

                @Override
                public void onSuccess() {

                }

                @Override
                public void onError() {
                    imgprofile.setImageResource(R.drawable.user);
                }
            });
    dialog2.show();

И в вашем файле dialog_img.xml добавьте Imageview с scaleType (fitXY).

0
niks_ahlawat