android长按菜单
‘壹’ Android系统屏幕左边有个小的拉出菜单要怎么去掉
1、点击图标,看看是哪个软件的快捷组件。
2、打开软件的设置,取消桌面或其它界面显示就OK。
另外,也可以通过权限设置,禁止软件显示通知等等,禁止这一类的组件和任务栏显示。
比如使用LBE安全大师,打开安全和隐私,打开权限设置,禁止广告和任务栏显示就可以禁止出现。
‘贰’ Android 仿微信长按列表弹出PopupMenu菜单栏
弹出效果如下图所示
可以使用setGravity()方法来指定弹出窗口与anchor视图的对齐方式,例如修改对齐方式为Gravity.END
使用起来还是比较简单的,但是好像大部分项目的需求是PopupMenu在用户点击的位置弹出,然而PopupMenu并没有提供在指定坐标弹出的方法,所以只能咱们自己来实现咯!
想让PopupMenu在指定弹出位置,首先咱们得先了解show()方法是如何让PopupMenu弹出来的,所以只能去阅读源码了(Read The Fucking Source Code~)。
PopupMenu的show()方法很简单,直接把任务转给MenuPopupHelper来处理,处理流程:show() -> tryShow() -> showPopup(0, 0, false, false);
我们可以看到showPopup方法内有两个参数int xOffset、int yOffset,根据注释可以知道这就是相对于anchor视图的坐标值。所以如果要指定PopupMenu的弹出位置,MenuPopupHelper应该这样处理弹出逻辑:show(int x, int y) -> tryShow(int x, int y) -> showPopup(x, y, true, true)。
但是由于PopupMenu无法调用到MenuPopupHelper的show(int x, int y) 方法,因此我们只能使用反射机制绕过PopupMenu,直接调用MenuPopupHelper的show(int x, int y)方法。
到此为止,已经有了大致的解决思路,接下来看看具体实现。
最终弹出效果如下图所示
‘叁’ Android的EditText长按只显示上面的复制粘贴菜单,不要弹出下面的输入法键盘怎么做
4.0以上的API禁止EditText弹出键盘需要这样写:
4.0的是setShowSoftInputOnFocus,4.2的是setSoftInputOnFocus。
java">EditTexteditText;
//editText的实例化我不写了
InputMethodManagerimm=(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(e1.getWindowToken(),0);
try{
Class<EditText>cls=EditText.class;
setSoftInputShownOnFocus=cls.getMethod("setShowSoftInputOnFocus",boolean.class);
setSoftInputShownOnFocus.setAccessible(true);
setSoftInputShownOnFocus.invoke(editText,false);
}catch(Exceptione){
e.printStackTrace();
}
并且还要在配置文件里面加上android:windowSoftInputMode="stateHidden"
4.0以下的可用editText.setInputType(InputType.TYPE_NULL);
或者直接在XML进行属性设置。
如果对4.0以上系统的操作这句代码,EditText将会没有光标。
‘肆’ Android 键盘快捷键有哪些
安卓(Android)x86常用键盘快捷键:
Alt-F1
=
进入
console
模式
Alt-F7
=
回到
GUI
模式
Alt-F9
=
图形界面
Alt-F10
=
画面旋转
180
度
Alt-F10
=
画面旋转
180
度
Alt-F11
=
画面向左旋转
90
度
Alt-F12
=
画面向右旋转
90
度
Ctrl-P
=
开启Android设定画面
"Windows
键"相当于
Android
的
Home
按钮。
"Esc"
相当于
Android
的
Back
按钮
F2
相当于
Android
的
Menu
按钮
F3
相当于
Android
的
Search
按钮
右边的菜单键(win和ctrl中间的键)
=
Android菜单键
返回键:鼠标右键/Esc键
menu键:鼠标滚轮
关机键:End键/F4键(2.2是短按。2/3好像是长按)
返回主界面:Home键/Windows键
中英文切换:Space+Shifta
‘伍’ android如何长按跳出菜单,怎么才能不用onclick方法直接用onlongclick
之前做按钮的点击事件一直没有注意一些细节,今天做了一个按钮需要有点击和长点击触发不同效果,直接让Activity implements OnClickListener, OnLongClickListener然后添加了相应的处理函数。
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
@Override
public boolean onLongClick(View v) {
// TODO Auto-generated method stub
return false;
}
没多做考虑,直接在函数内添加了我想要的实现。在一次不经意的测试中发现,在我的按钮点击时间中有一个临界值,当我单下按钮的时间等于这个临界值的时候,点击事件和长点击事件会同时触发。点击事件自然是没什么问题,导致这个问题一定是长点击事件出了问题,回过头仔细看长点击事件的方法,发现它和点击事件基本没有区别,唯一的区别就是多了一个返回值。那么这个返回值究竟有什么用呢,查了一下开发文档,对这个方法描述如下:
Public Methods
public abstract boolean onLongClick ( View v)
Added in API level 1
Called when a view has been clicked and held.
Parameters
v
The view that was clicked and held.
Returns
true if the callback consumed the long click, false otherwise.
说明了如果返回值为true的话这个点击事件会被长点击独占,否则相反。
这下就可以理解了为什么之前的点击会同时触发两个点击事件。
将onLongClick的返回值设置为true,即可避免这个问题的发生。