PopupWindow в OnCreate с ShowAtLocation - как получить родительский вид? - PullRequest
0 голосов
/ 26 февраля 2020

Я хочу показать свое всплывающее окно в середине экрана. Я звоню в OnCreate из MainActivity. Я не могу понять, как я могу получить родительское представление, которое запрашивает showAtLocation: public void showAtLocation(android.view.View parent, int gravity, 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.getView () или аналогичного

1 Ответ

0 голосов
/ 26 февраля 2020

Заменить

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

на

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