作者genius091612 (Yomao)
看板AndroidDev
标题[问题] 让Widget显示在所有Activity之上
时间Sun Sep 22 00:20:31 2013
我写了个app,会在启动时创造一些widget永远呈现在所有Activity之上,当切换到其他
app时也会显示,Service由这些widget启动与提供参数,我随时可以按他们。
目前有了一些button,他们都可以正常呈现与运作,code如下:
Display display = getWindowManager().getDefaultDisplay();
_floatStartButtonView = new Button(getApplicationContext());
_wm = (WindowManager) getApplicationContext().getSystemService("window");
WindowManager.LayoutParams wmParams = new WindowManager.LayoutParams();
wmParams.gravity = Gravity.TOP | Gravity.LEFT;
wmParams.x = 0 + display.getWidth() / 8;
wmParams.y = display.getHeight() / 8;
// 2002 = TYPE_PHONE
wmParams.type = 2002;
wmParams.format = 1;
// 40 = default(32)+ FLAG_NOT_FOCUSABLE(8)
wmParams.flags = 40;
wmParams.width = WindowManager.LayoutParams.WRAP_CONTENT;
wmParams.height = WindowManager.LayoutParams.WRAP_CONTENT;
_wm.addView(_floatStopButtonView, wmParams);
现在由於有一系列的功能button太多,我想用HorizontalScrollView呈现,按个按钮後出
现在画面最上方,让使用者可以左右拉。
LayoutParams的code几乎跟上面一模一样,现在view是出来了,却不能正常运作。
1. 我不能左右滑动她,滑动了也只是像一张固定的图片一样不动。
2. 虽然view不能左右滑动,底下却会出现scroll bar显示我有在滑,右滑到一定程度
scroll bar就会跑到画面外不见了。
我试着在activity_main.xml中拉个测试用的HorizontalScrollView,让她接跟上述的
HorizontalScrollView一样的资料,结果她可以正常动作,显示资料是没问题的,问题在
HorizontalScrollView的设定。
所以我是在type, format还是flags上设定错了吗?还是哪里有问题呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.25.158.213
1F:→ ted66:widget在3.0还是4.0後有重新定义尺寸,你先设定背景纯色 09/25 13:26
2F:→ ted66:看看是不是有移动,我都设定纯色来看框架的移动比较准确 09/25 13:26
3F:→ genius091612:结果最後发现问题是scrollView外面还要再包一层 10/07 23:29
4F:→ genius091612:Linear layout 这样放到画面上才是对的 10/07 23:30