java - OnCreate 中的 PopupWindow 和 ShowAtLocation - 如何获取父 View ?

标签 java android android-studio popupwindow

我想在屏幕中间显示我的弹出窗口。我在 MainActivity 的 OnCreate 中调用它。我无法理解如何获得 showAtLocation 所要求的父 View : public void showAtLocation(android.view.View父级,int重力,int x,int y)

我拥有的是:

     List<Fragment> list=new ArrayList<>();
        list.add(new PageFragment1());
        list.add(new PageFragment2());
        list.add(new PageFragment3());


        LayoutInflater inflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View v = inflater.inflate(R.layout.onboarding, null);


        pager=v.findViewById(R.id.pager);
        pagerAdapter=new Onboard_SlidePageAdapter(getSupportFragmentManager(),1,list);
        pager.setAdapter(pagerAdapter);

        onboardPopupWindow = new PopupWindow(v,500, RelativeLayout.LayoutParams.WRAP_CONTENT, true);
        onboardPopupWindow.setElevation(10);

        onboardPopupWindow.showAtLocation(this,Gravity.CENTER,0,0);

我知道我无法传递“this”,但没有 this.getView() 或类似的

最佳答案

替换

onboardPopupWindow.showAtLocation(this,Gravity.CENTER,0,0);

v.post(new Runnable() {
    public void run() {
        onboardPopupWindow.showAtLocation(v,Gravity.CENTER, 0, 0);
    }
});

关于java - OnCreate 中的 PopupWindow 和 ShowAtLocation - 如何获取父 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60414500/

相关文章:

java - 如果找不到文件尝试结束程序

java - 使用 .toDateTime() 将 LocalTime 转换为 DateTime 时存在 Joda-time 时区问题

javascript - 如何将参数传递给 PhoneGap 数据库事务函数

android - gradle build:任务 ':app:validateSigningAutomationRelease'的执行失败

java - 如何使用一些附加规则编写字符串排序

java - 使用具有远程和本地接口(interface)的 EJB 的业务接口(interface)模式

android - 如何等待所有异步完成?

android - 如何在 Android 上伪造 Wi-Fi 或 3G 连接事件

java - Android Studio - 我无法弄清楚是什么导致我的 StringArray 返回 NullPointerException 因为它记录为已初始化和填充

android - 从 Gallery Kotlin Android 旋转图像方向