Android PopupWindow显示位置设置

当点击某个按钮并弹出PopupWindow时,PopupWindow左下角默认与按钮对齐,但是如果PopupWindow是下图的那样,会发 生错位的情况,尤其是不同尺寸的平板上,那错位错的不是一般的不靠谱,而Android本身只提供了如下几个方法设置PopupWindow显示位置

  • showAsDropDown(View anchor, int xoff, int yoff) 以anchor的左下角为参照点,定义偏移
  • showAsDropDown(android.view.View) 以anchor的左下角为参照点,不偏移
  • showAtLocation(View parent, int gravity, int x, int y) 以parent为主容器,gravity为对齐参照点,定义偏移

推荐用showAsDropDwon方法。

这里是为了让PopupWindow居中显示,所以需要自己定义横向位移偏移量(其他位置类似)

int xoff = window.getWidth()/2-parent.getWidth()/2;

window.update();
window.showAsDropDown(parent, -xoff, 0);

时间: 2024-10-08 13:44:27

Android PopupWindow显示位置设置的相关文章

Android PopupWindow显示位置和显示大小

<?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:bac

android-Theme actionMode 显示位置设置

actionMode 默认的显示位置是在屏幕上方的,如果想要移到下方,可以添加如下属性 在AndroidManifest.xml 的activity中,做如下修改 <activity android:name="CalendarSettingsActivity" android:label="@string/preferences_title" <!--决定actionmode位置--> android:uiOptions="splitA

QT按钮背景颜色设置及文字显示位置设置

QPushButton * pQBtn = new QPushButton( cBuff, this ); pQBtn->setStyleSheet("text-align: left;");//设置按钮文字显示位置-左对齐 pQBtn->setStyleSheet("background-color: rgb(255, 128, 64);");//设置按钮背景颜色 pQBtn->setStyleSheet("border-image:

设置popupWindow显示位置以及点击其他位置取消弹出

相对控件位置显示: 上方显示 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 private void showPopUp(View v) {         LinearLayout layout = new LinearLayout(this);         layout.setBackgroundColor(Color.GRAY);         TextView tv = new TextView(this);       

android 自定义Dialog背景透明及显示位置设置

先贴一下显示效果图,仅作参考: 代码如下: 1.自定义Dialog public class SelectDialog extends AlertDialog{ public SelectDialog(Context context, int theme) {    super(context, theme);} public SelectDialog(Context context) {    super(context);} @Overrideprotected void onCreate(

Android PopupWindow显示在控件上方或者下方

项目中实现 主要代码如下 View view = mInflater.inflate(R.layout.layout_popupwindow, null); PopUpwindowLayout popUpwindowLayout = (PopUpwindowLayout) view.findViewById(R.id.llayout_popupwindow); popUpwindowLayout.initViews(mContext, titles, false); final PopupWin

Android -- PopupWindow的隐藏

PopupWindow的隐藏 final PopupWindow window = mPageStatWin; if(null != window && window.isShowing()) { win.dismiss(); } PopupWindow的显示及位置设置 window.showAtLocation(parent, Gravity.RIGHT | Gravity.BOTTOM, 10,10); 第一个参数指定PopupWindow的锚点view,即依附在哪个view上.第二个

Android—PopupWindow的简单使用

PopupWindow 是一个可以显示在当前 Activity 之上的浮动容器,这个Demo要实现的功能是,点击布局中的两个按钮,进而控制PopupWindow的显示与消失,代码中有详细的注释首先看一下效果展示: 在上代码之前,先总结一下PopupWindow的用法: 1:实例化PopupWindow的对象,三个参数分别对应:填充的布局文件.在当前Activity上所占的宽.高 PopupWindow popupWindow= new PopupWindow(contentView, Layou

android popupwindow 位置显示

1.在控件的上方: private void showPopUp(View v) { LinearLayout layout = new LinearLayout(this); layout.setBackgroundColor(Color.GRAY); TextView tv = new TextView(this); tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT