自定义了一个dialog,但是位置总是默认的
不知道大家有没有好的方法,来设置dialog的位置呢?
------解决方案--------------------
这个你可以看看Dialog的构造方法:
- C# code
public Dialog(Context context, int theme) { mContext = new ContextThemeWrapper( context, theme == 0 ? com.android.internal.R.style.Theme_Dialog : theme); mWindowManager = (WindowManager)context.getSystemService("window"); Window w = PolicyManager.makeNewWindow(mContext); mWindow = w; w.setCallback(this); w.setWindowManager(mWindowManager, null, null); w.setGravity(Gravity.CENTER); mUiThread = Thread.currentThread(); mListenersHandler = new ListenersHandler(this); }
------解决方案--------------------
先把你自定义的dialog show出来,然后setContentView你自己的布局,之后设置x,y属性,然后再次show出来就可以了,如果只在自己定义布局加载后show的话,位置不起作用的
------解决方案--------------------
dialog.create();
Window mWindow = dialog.getWindow()
WindowManager.LayoutParams lp = mWindow.getAttributes()
lp.x = 100;
lp.y = 300;
dialog.setAttributes(lp)
dialog.show()
dialog.setContentView(自己的布局)
dialog.show()