Отображение представления в WindowManager, которое может появиться из «вне экрана»,

У меня возникла следующая проблема: у меня есть представление о том, что я помещаю внутри WindowManager, и я бы хотел, чтобы он появился в переводе анимации из экрана и в середину экрана.

К сожалению, независимо от того, что я делаю, взгляд прилипает к оси.

Это код:

view = (FrameLayout) LayoutInflater.from(this).inflate( R.layout.poke, null); final WindowManager.LayoutParams params = new WindowManager.LayoutParams( 300, 400, WindowManager.LayoutParams.TYPE_PHONE, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, PixelFormat.TRANSLUCENT); params.verticalMargin = -10f; params.gravity = Gravity.TOP; windowManager.addView(view, params); 

Как вы можете видеть, я попытался сыграть с краем (положите туда минус, чтобы он поднялся).

Кстати, я знаю, что уродливо ставить числа, а не dp в dimen.xml. Это всего лишь тестовый код ..

Я просто столкнулся с той же проблемой, и фактический флаг:

 WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS 

Поэтому ваш код должен выглядеть так:

 final WindowManager.LayoutParams params = new WindowManager.LayoutParams( 300, 400, WindowManager.LayoutParams.TYPE_PHONE, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, PixelFormat.TRANSLUCENT); 

В флагах, которые вы указываете, добавьте еще один флаг FLAG_LAYOUT_NO_BOUNDS .

Это должно позволить вам размещать ваши представления даже вне экрана.

Ваш код должен выглядеть так:

 final WindowManager.LayoutParams params = new WindowManager.LayoutParams( 300, 400, WindowManager.LayoutParams.TYPE_PHONE, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_LAYOUT_NO_BOUNDS, PixelFormat.TRANSLUCENT);