-
2010-03-02 18:48:00
对话框 标题栏 键盘操作 移动
Alt+Space->移动
键盘上下左右移动
参考:
http://z.baidu.com/question/14001925.html
更多相关内容 -
android 自定义登陆对话框基类封装,且随着软键盘的弹起自动移动位置
2020-11-27 18:50:25像对话框这种常用的组件,用过一...就是本文介绍的,随着软键盘的弹起自动移动位置的对话框。 先封装实现个baseDialog基础类,把通用的操作封装一下。 package com.newcapec.visitorsystem.dialog; import androi像对话框这种常用的组件,用过一次最好做个封装。再次用到时就很简单啦。直接拿过来复用即可。
以下是工作中用到的管理员登录框,由于是双屏异显,在后屏弹出的对话框,没法调用系统软键盘,于是自己实现了个系统软件盘。
但一弹出来软键盘,对话框就被该住了!这怎么破?方法是有的。就是本文介绍的,随着软键盘的弹起自动移动位置的对话框。
先封装实现个baseDialog基础类,把通用的操作封装一下。
package com.newcapec.visitorsystem.dialog; import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; import android.os.Build; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.Window; import android.view.WindowManager; /** * Created by yangyongzhen on 2017/5/12. */ public abstract class BaseDialog<T> extends Dialog implements DialogInterface.OnDismissListener, DialogInterface.OnShowListener{ protected View rootView; protected boolean isInit; protected Context context; protected boolean isFullScreen; protected Window window; public BaseDialog(Context context) { super(context); this.context = context; window = getWindow(); } public BaseDialog(Context context, boolean isFullScreen) { super(context); this.context = context; this.isFullScreen = isFullScreen; window = getWindow(); } public BaseDialog(Context context, int themeResId) { super(context, themeResId); this.context = context; window = getWindow(); // sysApplication = (App) ((Activity)context).getApplication(); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //hideBottomUIMenu(); // showBottomUIMenu(); rootView = getBindingRoot(); if(rootView!=null){ setContentView(rootView); }else{ setContentView(getLayoutResid()); } initView(); initData(); initEvent(); setOnDismissListener(this); setOnShowListener(this); } protected int getHeight() { return 0; } protected int getWidth() { return 0; } abstract View getBindingRoot(); protected void initView() { //window.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND); //清除灰色背景 } protected int getLayoutResid() { return 0; } protected void initData() { } protected void initEvent() { } @Override public void onDetachedFromWindow() { super.onDetachedFromWindow(); //hideBottomUIMenu(); Log.i("Dialog", "onDetachedFromWindow"); } @Override public void cancel() { super.cancel(); } @Override public void onDismiss(DialogInterface dialog) { doDismiss(); } public void doDismiss() {} /** * 隐藏虚拟按键:必须放到setContentView前面 */ protected void hideBottomUIMenu() { if (Build.VERSION.SDK_INT > 11 && Build.VERSION.SDK_INT < 19) { View v = this.getWindow().getDecorView(); v.setSystemUiVisibility(View.GONE); } else if (Build.VERSION.SDK_INT >= 19) { View decorView = getWindow().getDecorView(); int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_FULLSCREEN; decorView.setSystemUiVisibility(uiOptions); } } protected void showBottomUIMenu() { //隐藏虚拟按键,并且全屏 if (Build.VERSION.SDK_INT > 11 && Build.VERSION.SDK_INT < 19) { // lower api View v = this.getWindow().getDecorView(); v.setSystemUiVisibility(View.VISIBLE); } else if (Build.VERSION.SDK_INT >= 19) { //for new api versions. View decorView =this.getWindow().getDecorView(); decorView.setSystemUiVisibility( View.SYSTEM_UI_FLAG_IMMERSIVE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); } } @Override public void onShow(DialogInterface dialog) { if(!isInit) { isInit = true; } } @Override public void show() { //focusNotAle(window); super.show(); //hideNavigationBar(window); //clearFocusNotAle(window); } } /** * 后屏显示的Dialog的基础类,因为后屏的Dialog的像素密度跟前屏不一样,所以需要改下像素密度才能正常显示 * 前屏像素密度为1,后屏获取到的为2 */ public class BackDialog extends BaseDialog { private final String TAG = "BackDialog"; public BackDialog(Context context, int themeResId){ super(context, themeResId); float scale = context.getResources().getDisplayMetrics().density; int dp =(int) (48 / scale + 0.5f); Log.e(TAG,"dp:"+dp); } @Override View getBindingRoot() { //更改Dialog的像素密度 Utils.setDensity(App.getContext(),context); //使背景变暗 // WindowManager.LayoutParams lp = getWindow().getAttributes(); // lp.alpha = 0.6f; // getWindow().setAttributes(lp); //getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND); return null; } /** * 禁掉系统软键盘 */ public void hideSoftInputMethod(EditText edit) { this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); int currentVersion = android.os.Build.VERSION.SDK_INT; String methodName = null; if (currentVersion >= 16) { // 4.2 methodName = "setShowSoftInputOnFocus"; } else if (currentVersion >= 14) { // 4.0 methodName = "setSoftInputShownOnFocus"; } if (methodName == null) { edit.setInputType(InputType.TYPE_NULL); } else { Class<EditText> cls = EditText.class; Method setShowSoftInputOnFocus; try { setShowSoftInputOnFocus = cls.getMethod(methodName, boolean.class); setShowSoftInputOnFocus.setAccessible(true); setShowSoftInputOnFocus.invoke(edit, false); } catch (NoSuchMethodException e) { edit.setInputType(InputType.TYPE_NULL); e.printStackTrace(); } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { e.printStackTrace(); } } } }
以下是我的LoginDlg继承自基类:
package com.newcapec.visitorsystem.dialog; import android.annotation.SuppressLint; import android.content.Context; import android.text.InputType; import android.util.Log; import android.view.Display; import android.view.Gravity; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; import android.view.Window; import android.view.WindowManager; import android.widget.Button; import android.widget.EditText; import com.newcapec.visitorsystem.R; import com.newcapec.visitorsystem.diyview.AbcNumberViewBack; import com.newcapec.visitorsystem.utils.Utils; public class LoginDlg extends BackDialog { private final String TAG = "LoginDlg"; EditText editInputUsername,editInputPassword; AbcNumberViewBack abcNumberView; Button btnLogin; private OnLoginListener onLoginListener; //private DialogLoginBinding loginBinding; public LoginDlg(Context context, int themeResId, AbcNumberViewBack abcNumberViewBack){ super(context, themeResId); abcNumberView = abcNumberViewBack; } @Override View getBindingRoot() { super.getBindingRoot(); rootView = LayoutInflater.from(context).inflate(R.layout.dialog_login, null, false); //loginBinding = DataBindingUtil.inflate(LayoutInflater.from(context),R.layout.dialog_login,null,false); return rootView; } @Override protected void initView() { super.initView(); final Window dialogWindow = this.getWindow(); WindowManager.LayoutParams lp1 = dialogWindow.getAttributes(); lp1.width = Utils.dp2px(910); //设置宽度 lp1.height = Utils.dp2px(660); //设置高度 //lp1.width = width; //lp1.height = height; dialogWindow.setAttributes(lp1); dialogWindow.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND); //清除灰色背景 editInputUsername = findViewById(R.id.edit_login_username); editInputPassword = findViewById(R.id.edit_login_password); btnLogin = findViewById(R.id.btn_login); } @Override protected void initData() { super.initData(); initTouch(); btnLogin.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Log.d(TAG,"btn login click:"); abcNumberView.hideKeyboard(); resetPosition(0,0,Gravity.CENTER); if(onLoginListener != null){ onLoginListener.onClickLogin(editInputUsername.getText().toString(),editInputPassword.getText().toString()); } //dismiss(); } }); //KeyBoardUtils.openKeybord(editInputUsername,context); } /** * 重新设置Dialog的显示位置 */ protected void resetPosition(int x,int y,int gravity){ Window mWindow = getWindow(); mWindow .setGravity(gravity); WindowManager.LayoutParams lp = mWindow.getAttributes(); lp.x = x; // 新位置X坐标 lp.y = y; // 新位置Y坐标 onWindowAttributesChanged(lp); } @Override public void show(){ super.show(); } @Override public void dismiss(){ editInputUsername.setText(""); editInputPassword.setText(""); super.dismiss(); } @SuppressLint("ClickableViewAccessibility") private void initTouch() { //初始化键盘监听 hideSoftInputMethod(editInputUsername); editInputUsername.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent event) { Log.e(TAG, "键盘--------" + event.getAction()); abcNumberView.setmEdit(editInputUsername); if (event.getAction() == MotionEvent.ACTION_UP) { if (view != null) { resetPosition(0,0,Gravity.TOP); if (!abcNumberView.isShow()) { abcNumberView.showKeyboard(); } } } return false; } }); hideSoftInputMethod(editInputPassword); editInputPassword.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent event) { Log.e(TAG, "键盘--------" + event.getAction()); abcNumberView.setmEdit(editInputPassword); if (event.getAction() == MotionEvent.ACTION_UP) { if (view != null) { resetPosition(0,0,Gravity.TOP); if (!abcNumberView.isShow()) { abcNumberView.showKeyboard(); } } } return false; } }); abcNumberView.setOkListener(new AbcNumberViewBack.OnOkListener() { @Override public void onOk(String e) { resetPosition(0,0,Gravity.CENTER); } }); } public interface OnLoginListener { void onClickLogin(String name,String pwd);//点击了确认 } public void setOnLoginListener(OnLoginListener onLoginListener) { this.onLoginListener = onLoginListener; } }
自动移动位置的秘诀:
/** * 重新设置Dialog的显示位置 */ protected void resetPosition(int x,int y,int gravity){ Window mWindow = getWindow(); mWindow .setGravity(gravity); WindowManager.LayoutParams lp = mWindow.getAttributes(); lp.x = x; // 新位置X坐标 lp.y = y; // 新位置Y坐标 onWindowAttributesChanged(lp); }
-
不用鼠标用键盘,怎么移动光标?
2020-12-18 22:27:51先用ALT+TAB或者Alt+Esc组合键将光标转换到网页上,然后再用键盘上的方向键可以移动鼠标的光标。一、组合键作用:1、Alt+Esc它是按顺序来切换程序窗口的,比如你第一个打开的是浏览器,第二个打开的是视频播放器,第...先用ALT+TAB或者Alt+Esc组合键将光标转换到网页上,然后再用键盘上的方向键可以移动鼠标的光标。
一、组合键作用:
1、Alt+Esc它是按顺序来切换程序窗口的,比如你第一个打开的是浏览器,第二个打开的是视频播放器,第三个打开的是音乐播放器,你当前的程序是浏览器,那么按Alt+Esc的话就会切换到播放器,再按Alt+Esc又会切换到音乐播放器,再按Alt+Esc又会切换到浏览器界面。
2、Alt+Tab键会切换到你上一次使用的程序窗口,比如你上一次使用的是视频播放器,现在是窗口是浏览器窗口,那么按一下Alt+Tab键的话就会切换到视频播放器窗口,再按一下Alt+Tab键的话又会切换到浏览器窗口。
二、操作指示图片:
1、需要同时按位两个键,
2、方向键根据箭头方向上下左右自动调整光标位置。
扩展资料
windows常见组合键:
1、F1 显示当前程序或者windows的帮助内容。
2、F2 当你选中一个文件的话,这意味着“重命名”
3、F3 当你在桌面上的时候是打开“查找:所有文件” 对话框
4、F10或ALT 激活当前程序的菜单栏
5、windows键或CTRL+ESC 打开开始菜单
6、CTRL+ALT+DELETE 在win9x中打开关闭程序对话框
7、DELETE 删除被选择的选择项目,如果是文件,将被放入回收站
8、SHIFT+DELETE 删除被选择的选择项目,如果是文件,将被直接删除而不是放入回收站
9、CTRL+N 新建一个新的文件
10、CTRL+O 打开“打开文件”对话框
11、CTRL+P 打开“打印”对话框
12、CTRL+S 保存当前操作的文件
13、CTRL+X 剪切被选择的项目到剪贴板
14、CTRL+INSERT 或 CTRL+C 复制被选择的项目到剪贴板
15、SHIFT+INSERT 或 CTRL+V 粘贴剪贴板中的内容到当前位置
16、ALT+BACKSPACE 或 CTRL+Z 撤销上一步的操作
17、ALT+SHIFT+BACKSPACE 重做上一步被撤销的操作
18、Windows键+M 最小化所有被打开的窗口。
19、Windows键+CTRL+M 重新将恢复上一项操作前窗口的大小和位置
20、Windows键+E 打开资源管理器
21、Windows键+F 打开“查找:所有文件”对话框
22、Windows键+L 锁定当前用户
-
怎么用键盘移动文件夹而不用鼠标?电脑老师下的任务、、、
2021-07-15 04:36:15五、使用对话框中的快捷键 目的快捷键 取消当前任务 ESC 如果当前控件是个按钮,要 单击该按钮或者如果当前控 件是个复选框,要选择或清 除该复选框或者如果当前控 件是个选项按钮,要单击该 选项空格键 单击相应的...五、使用对话框中的快捷键 目的快捷键 取消当前任务 ESC 如果当前控件是个按钮,要 单击该按钮或者如果当前控 件是个复选框,要选择或清 除该复选框或者如果当前控 件是个选项按钮,要单击该 选项空格键 单击相应的命令 ALT+带下划线的字母 单击所选按钮 ENTER 在选项上向后移动 SHIFT+ TAB 在选项卡上向后移动 CTRL+ SHIFT+ TAB 在选项上向前移动 TAB 在选项卡上向前移动 CTRL+ TAB 如果在“另存为”或“打开” 对话框中选择了某文件夹, 要打开上一级文件夹 BACKSPACE 在“另存为”或“打开”对 话框中打开“保存到”或 “查阅” F4 刷新“另存为”或“打开” 对话框 F5 六、使用“桌面”、“我的电脑”和“Windows资源管理器”快捷键 选择项目时,可以使用以下快捷键。 目的快捷键 插入光盘时不用“自动播放” 功能按住 SHIFT插入 CD-ROM 复制文件按住 CTRL拖动文件 创建快捷方式按住 CTRL+SHIFT拖动文件 立即删除某项目而不将其放入 SHIFT+DELETE “回收站” 显示“查找:所有文件” F3 显示项目的快捷菜单 APPLICATION键 刷新窗口的内容 F5 重命名项目 F2 选择所有项目 CTRL+ A 查看项目的属性 ALT+ ENTER或 ALT+双击 可将 APPLICATION键用于 Microsoft自然键盘或含有 APPLICATION键的其他兼容键 七、Microsoft放大程序的快捷键 这里运用Windows徽标键和其他键的组合。 快捷键目的 Windows徽标+PRINT SCREEN将屏幕复制到剪贴板(包括鼠标光标) Windows徽标+SCROLL LOCK将屏幕复制到剪贴板(不包括鼠标光标) Windows徽标+ PAGE UP切换反色。 Windows徽标+ PAGE DOWN切换跟随鼠标光标 Windows徽标+向上箭头增加放大率 Windows徽标+向下箭头减小放大率 八、使用辅助选项快捷键 目的快捷键 切换筛选键开关右SHIFT八秒 切换高对比度开关左ALT+左SHIFT+PRINT SCREEN 切换鼠标键开关左ALT+左SHIFT+NUM LOCK 切换粘滞键开关 SHIFT键五次 切换切换键开关 NUM LOCK五秒
补充:
其他的上面的兄弟都说了 呵呵
:
谢谢了 还是你谦虚 呵呵
取消
评论
-
Android&对话框最全面的使用介绍,移动网页开发
2021-11-09 13:14:06如果完全使用自定义的对话框我更推荐DialogFragment来实现(后面讲解) 奇淫技巧 自动弹出键盘 Dialog如果存在输入框是无法自动弹出键盘的, 以下函数可以实现; public static void showInputMethod(EditText editText... -
《》 为什么Excel 用键盘上,下,左,右键光标不移动,而是整个表格移动
2020-12-24 22:58:01为什么Excel 用键盘上,下,左,右键光标不移动,而是整个表格移动百科-scroll lock如何在鼠标右键添加新建“Excel”表格呢?在桌面空白出鼠标,选择“Excel”表格即可。如果没有此选项按以下操作。1、开始——运行... -
Java基础——图形用户界面+Action鼠标键盘事件+对话框Dialog-菜单
2014-07-02 22:46:38 ...•用图形的方式,来显示计算机操作的界面,这样更方便更直观。 Java为GUI提供的对象都存在java.Awt和javax.Swing两个包中。 java.Awt: Abstract Window ToolKit (抽象窗口工具包 -
Excel--键盘操作(移动键及功能键)
2019-12-11 09:51:08如果发现箭头移动时是整个页面移动而不是单元格之间的跳转,需要按一下键盘中的滚动/锁定键(Scroll Lock)【右上角】 Tab--往右,shift+Tab--往左,Enter--向下,Shift+enter--向上 ctrl+箭头,到表格边界边... -
安卓手机 软键盘挡住了输入框解决方法
2020-12-18 13:38:20安卓手机 软键盘挡住了输入框解决方法 -
Android 仿今日头条评论时键盘自动弹出的效果(推荐)
2021-01-04 09:16:14Android 仿今日头条评论时键盘自动弹出的效果:当点击评论时,弹出对话框,同时弹出软键盘,当点击返回键时,将对话框关闭,不只是关闭软键盘。 效果图: 对这个对话框设置一个style效果: <style name=... -
MFC 对话框Dialog响应键盘事件
2017-01-08 10:08:11在对话框程序中有时需要响应键盘和鼠标事件,MFC的对话框继承于CWnd窗口类,总结了如下几种可能的处理方式: 1,最直观的想法是重写类中的虚拟响应函数,这些响应函数有: 键盘相关:ON_WM_CHAR、ON_WM_KWEYDOWN、ON... -
Qt的对话框与窗口--自定义的对话框
2022-05-09 14:24:05自定义的对话框 对话框的显示分模态对话框和非模态对话框。 创建对话框 1.创建对话框 单击Qt Creator的菜单项“File”→“New File or Project”,选择Qt类别下的“Qt Designer Form Class”,创建可视化设计的对话... -
popcap sexyframework - Demo5 键盘输入 对话框 滑动条 设置音量
2012-11-08 22:02:38// 本例子我们使用自定义的对话框类 #include "DemoDialog.h" // 下边演示如何检测内存泄漏. 在每个要检测的文件中加上下边2句. // 要注意的是这两句必须放在包含其他的头文件之后. 否则会产生编译/连接错误. //... -
对话框文档
2014-05-15 10:09:05描述了MFC中资源对话框的编写,以及对话框的操作和创建 -
对话框与多窗体设计
2020-09-15 17:03:37对话框与多窗体设计 本章介绍对话框和多窗体设计,调用方式,数据传递等问题 - Qt提供的标准对话框的式样 - 自定义对话框的设计和调用 - 在一个应用程序中如何设计多种窗体,基于QDialog, QWidget, QMainWindow创建... -
实验八图形用户界面与对话框.doc
2021-03-14 15:51:47实验八图形用户界面与对话框实验八 图形用户界面与对话框实验目的1、学会处理ActionEvent事件2、学会使用布局类3、学习焦点、鼠标和键盘事件4、学习使用输入和消息对话框实验内容1、根据附录里的源代码,按照注释... -
对话框程序的键盘介面
2009-10-23 22:12:00在对话框程序设计中,Windows内置的对话框管理器为我们提供了常用的键盘操作支持,它包括子窗口控件的Tab停留和分组, 子窗口...对Enter,Esc和Ctrl+Break的处理支持,用于使用键盘快速关闭对话框1.Tab停留在对话框中, -
电脑键盘快捷键使用大全.doc
2021-02-08 16:24:55电脑键盘快捷键,适合学习参考。 -
模式对话框与非模式对话框的区别
2020-05-28 14:39:21模式对话框就是不处理它就没法处理父窗口,而非模式对话框就是不用先处理此对话框也可以处理父窗口....在WIN32中,模式对话框的创建一般是使用DialogBox来进行创建的。而非模式对话框则是利用CreateWindo -
STM32——EMWIN对话框(十二)
2022-04-08 09:16:06EMWIN ...小工具可以创建并独立使用,因为它们本质上就是窗口,但是,通常需要使用对话框,对话框是一个包含一个或多个小工具的窗口。对话框通常是一个窗口,它在出现时会要求用户输入信息,它可能 -
qtmessagebox对话框里自定义按钮文本_对话框概述
2020-12-05 16:24:21第一眼看对话框窗口和框摘要本文介绍了对话框框架体系结构和组件。 概述对话框框架类树对话框框架类定义 ...对话框框架类树下面是对话框窗口中使用的对话框框架类,这些类排列在显示继承链接的树中。除了这些类之外... -
WIN32汇编对话框的使用
2016-03-25 20:09:36刚开始接触windows下的对话框,第一感觉就像是一个一般的窗口一样,没有图标,只有一个框框,中间有一些提示的控件(按钮,输入的文本框等)信息,在学习使用对话框的时候,资源文件的编写我感觉比编写实现对话框的... -
FC基于对话框,插入图像控件,控件上,画一个绿色的矩形,按键盘上下左右键
2015-01-07 14:09:57MFC基于对话框,在对话框上插入图像控件,在图像控件上,画一个绿色的矩形,按键盘上下左右键,矩形在图像控件上移动移动。分别创建一个文本文件和一个二进制文件,对话框退出时,文档内写入保存退出前的矩形的位置... -
Android&对话框最全面的使用介绍,flutter插件播放音乐
2021-11-07 22:44:15标题图标 即在标题的左边加上一个图片作为图标显示 AlertDialog.Builder setIcon (Drawable icon) AlertDialog.Builder setIcon (int iconId) ... 你如果使用设置确定和取消按钮依旧会显示; AlertDialog -
MFC模态对话框和非模态对话框
2018-09-11 15:30:54下面是一个我的手写的模态对话框和非模态对话框图: 模态对话框是指当其显示时,程序会暂停执行,直到关闭这个模态对话框后,才能继续执行程序中其他任务。非模态对话框是指当其显示时,允许转而执行程序中其他... -
干货:全方面介绍电脑键盘各键功能与组合键使用方法
2021-07-24 01:43:45要想提高自己的电脑操作技术知识,首先要掌握电脑键盘各键功能,这样在你使用电脑工作时就会事半功倍。下面小编就带大家一起去进行全方面介绍电脑键盘各键功能与组合键的使用。一、电脑键盘一般分为四个区域,分别是... -
QT自定义对话框
2020-02-22 16:29:54对话框的调用一般包括创建对话框、传递数据给对话框、显示对话框获取输入、判断对话框单击按钮的返回类型、获取对话框输入数据等过程。 本节将通过实例 samp6_2 来详细介绍这些原理。图 1 是实例 samp6_2 的主窗口,... -
11、对话框
2021-05-14 10:56:52需要注意的是,对话框设计中使用的坐标值和尺寸并不是以像素为单位,它们的大小基于对话框当前使用的字体大小: x坐标和宽度以字符平均宽度的1/4为单位 y坐标和高度以字符高度的1/8为单位 ...