手机版

百科生活 投稿

如何关闭软键盘,电脑键盘关机快捷键(Android文本)

百科 2025-12-27 10:51:39 投稿 阅读:6696次

关于【如何关闭软键盘】:如何关闭软键盘,今天小编给您分享一下,如果对您有所帮助别忘了关注本站哦。

  • 内容导航:
  • 1、如何关闭软键盘
  • 2、Android文本,软键盘全解《初级》

1、如何关闭软键盘

  1、用快捷组合键来关闭软键盘。大家可以通过以下步骤来查看系统默认的快捷键。调出输入法面板。

  2、点击输入法面板上的最后一个按钮,打开搜狗工具箱窗口,点击“属性设置”。

  3、然后在属性窗口中,点击左侧的“按钮”按钮,再在右侧滚动到“系统功能快捷键”选项,就可以在其中看到“软键盘”的快捷键了。

  4、默认软键盘前面的复选框是没被选中的,这时快捷键未生效,勾选该复选框并点击确定保存后,就可以通过按下:CTRL+SHIFT+K键来开关软键盘了。

  5、当然,现在有些软键盘上已经自带关闭按钮了,这时,只需点击该按钮就可以关闭软键盘了。

2、Android文本,软键盘全解《初级》

前言

已经有一个多月没有写文章了,当然,我没失踪,我还活着!因为换了新的工作环境,所以在接手项目的时候花了点时间……不为自己做过多借口,今后持续更新好内容(还是希望自己能周更)!

这篇文章最初是记录一个全屏模式下输入框被软键盘覆盖的问题,要求背景不动,输入框上移!碰巧之后项目发版,有一点时间,就想着能不能将Android文本使用做一个总结!结合之前自己做的一些笔记,这篇文章就顺利产出了!

其实换工作之后,我更希望能产出高质量的文章,所以我对于这篇文章的期待其实蛮高的,希望这篇文章能帮助所有开发者解决在Android开发过程中遇到的文本问题。当然,现在文章记录的是自己遇到的一些问题(不是很全面),希望各位在Android开发中遇到各种关于文本类的问题可以给我留言,我们一起来讨论,研究对应的解决方案,完善这篇文章及项目!

目录

如何关闭软键盘,电脑键盘关机快捷键(Android文本)

项目效果

文本:

如何关闭软键盘,电脑键盘关机快捷键(Android文本)

如何关闭软键盘,电脑键盘关机快捷键(Android文本)

如何关闭软键盘,电脑键盘关机快捷键(Android文本)

软键盘:

如何关闭软键盘,电脑键盘关机快捷键(Android文本)

如何关闭软键盘,电脑键盘关机快捷键(Android文本)

TextView的基本使用

TextView的基本属性

常用的属性:

下面这些基本包含TextView的所有属性,里面很多属性大多数情况下我们都使用不到,可以稍微了解下,可以直接跳过属性列表!

图文混排的三种实现方式

1. drawableTop,DrawableBottom,DrawableLeft,drawableRight

2. 通过ImageSpan或者DynamicDrawableSpan实现

SpannableString dynamicDrawableSpan = new SpannableString("DynamicDrawableSpan"); DynamicDrawableSpan drawableSpan = new DynamicDrawableSpan(DynamicDrawableSpan.ALIGN_BASELINE) { @Override public Drawable getDrawable() { Drawable d = getResources().getDrawable(R.drawable.emoji_00); d.setBounds(0, 0, 150, 150); return d; } }; DynamicDrawableSpan drawableSpan2 = new DynamicDrawableSpan( DynamicDrawableSpan.ALIGN_BOTTOM) { @Override public Drawable getDrawable() { Drawable d = getResources().getDrawable(R.drawable.emoji_01); d.setBounds(0, 0, 150, 150); return d; } }; dynamicDrawableSpan.setSpan(drawableSpan, 3, 4, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); dynamicDrawableSpan.setSpan(drawableSpan2, 7, 8, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); mDynamicDrawableSpanTv.setText(dynamicDrawableSpan); SpannableString imageSpan = new SpannableString("ImageSpan"); Drawable d = getResources().getDrawable(R.drawable.emoji_02); d.setBounds(0, 0, 150, 150); imageSpan.setSpan(new ImageSpan(d), 3, 4, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); mIamgeSpanTv.setText(imageSpan);

3. 通过给TextView设置Html内容

如果要包含图片的话需要重写一个类实现ImageGetter接口并重写getDrawable方法,具体实现可以下载底部项目源码!

mThreePictxtTv.setText(Html.fromHtml("点击我,带你到HtmlTextActivity中去textView通过Html实现图文混排 点击这一段"));

带图片的html的设置:

String g = "" +"" + "" +"" +"\t

Android性能优化之APK瘦身详解(瘦身73%)

" +"\t

公司项目在不断的改版迭代中,代码在不断的累加,终于apk包不负重负了,已经到了八十多M了。可能要换种方式表达,到目前为止没有正真的往外推过,一直在内部执行7天讨论需求,5天代码实现的阶段。你在写上个版本的内容,好了,下个版本的更新内容已经定稿了。基于这种快速开发的现状,我们app优化前已经有87.1M了,包大了,运营说这样转化不高,只能好好搞一下咯。优化过后包大小为23.1M(优化了73%,不要说我标题党)。好了好了,我要阐述我的apk超级无敌魔鬼瘦身之心得了。

" +"" +"\t" + "" + "" +""; mHtmlTv.setText(Html.fromHtml(htmlContent, new MImageGetter(mHtmlTv,HtmlTextActivity.this),null));public class MImageGetter implements ImageGetter { Context c; public MImageGetter(TextView text, Context c) { this.c = c; } public Drawable getDrawable(String source) { Drawable drawable = null; InputStream is = null; try { is = c.getResources().getAssets().open(source); } catch (IOException e1) { e1.printStackTrace(); } try { TypedValue typedValue = http://www.029ztxx.com/tg/new TypedValue(); typedValue.density = TypedValue.DENSITY_DEFAULT; drawable = Drawable.createFromResourceStream(null, typedValue, is,"src"); DisplayMetrics dm = c.getResources().getDisplayMetrics(); int dwidth = dm.widthPixels-10;//padding left + padding right float dheight = (float)drawable.getIntrinsicHeight()*(float)dwidth/(float)drawable.getIntrinsicWidth(); int dh = (int)(dheight+0.5); int wid = dwidth; int hei = dh; drawable.setBounds(0, 0, wid, hei); return drawable; } catch (Exception e) { System.out.println(e); return null; } }}

EditText的基本使用

1. EditText的基本属性

1. imeOption属性

imeOptions:值:

  • actionDone:完成,对应常量EditorInfo.IME_ACTION_DONE
  • actionSend :发送,对应常量EditorInfo.IME_ACTION_SEND
  • actionSearch 搜索,对应常量EditorInfo.IME_ACTION_SEARCH
  • actionGo 去往,对应常量EditorInfo.IME_ACTION_GO
  • actionNone 没有动作,对应常量EditorInfo.IME_ACTION_NONE
  • actionUnspecified 未指定,默认,对应常量EditorInfo.IME_ACTION_UNSPECIFIED.
  • actionNext 下一个,对应常量EditorInfo.IME_ACTION_NEXT

2. inputType属性

android:inputType="phone" //电话号码 android:inputType="none" //文本类型,多为大写、小写和数字符号。 android:inputType="text" android:inputType="textCapCharacters" //字母大写 android:inputType="textCapWords" //首字母大写 android:inputType="textCapSentences" //仅第一个字母大写 android:inputType="textAutoCorrect" //自动完成 android:inputType="textAutoComplete" //自动完成 android:inputType="textMultiLine" //多行输入 android:inputType="textImeMultiLine" //输入法多行(如果支持) android:inputType="textNoSuggestions" //不提示 android:inputType="textUri" //网址 android:inputType="textEmailAddress" //电子邮件地址 android:inputType="textEmailSubject" //邮件主题 android:inputType="textShortMessage" //短讯 android:inputType="textLongMessage" //长信息 android:inputType="textPersonName" //人名 android:inputType="textPostalAddress" //地址 android:inputType="textPassword" //密码 android:inputType="textVisiblePassword" //可见密码 android:inputType="textWebEditText" //作为网页表单的文本 android:inputType="textFilter" //文本筛选过滤 android:inputType="textPhonetic" //拼音输入 //数值类型 android:inputType="number" //数字 android:inputType="numberSigned" //带符号数字格式 android:inputType="numberDecimal" //带小数点的浮点格式 android:inputType="datetime" //时间日期 android:inputType="date" //日期键盘 android:inputType="time" //时间键盘

2. 监听软键盘右下角按键

editText.setOnEditorActionListener(new TextView.OnEditorActionListener() { @Override public boolean>@color/colorWhite80//2. 通过修改EditText的style来修改下划线颜色

3. 控制输入框最多输入20个字符(10个汉字,20个英文字符)

Android原生计算方法没有汉字和英文字符的区分,所以当产品有这个需求的时候,只能通过过滤计算去限制输入!这里提供两种方案:

1. 通过TextWatcher来监听输入字符串内容进行过滤

editText.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void alt="如何关闭软键盘,电脑键盘关机快捷键(Android文本)" src="https://p3.toutiaoimg.com/pgc-image/1537953941311a607b3315b~tplv-tt-large.image" />

代码实现

//思路参考于:AndroidBug5497Workaroundpublic class AndroidSoftBoardAdjustHeightUtil { public static void assistActivity(Activity activity) { new AndroidSoftBoardAdjustHeightUtil(activity); } private View mChildOfContent; private int usableHeightPrevious; private FrameLayout.LayoutParams frameLayoutParams; private AndroidSoftBoardAdjustHeightUtil(Activity activity) { FrameLayout content = (FrameLayout) activity.findViewById(android.R.id.content); mChildOfContent = content.getChildAt(0); mChildOfContent.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { public void alt="如何关闭软键盘,电脑键盘关机快捷键(Android文本)" src="https://p3.toutiaoimg.com/pgc-image/15379539816935a69f1dfaa~tplv-tt-large.image" />

代码

  1. 在输入框onTouch事件的时候将占位视图显示出来,防止闪烁问题
  2. 在监听到软键盘弹出之后,通过视图的偏移高度和反射调用getInputMethodWindowVisibleHeight获取软键盘高度取最小值!(为了适配手机虚拟键盘高度计算,本人自测,任何一种方式都不能兼容到所有手机,最终通过取两种计算结果下的最小值来解决这个问题!)

private void initCheckKeyBoardIsShow(final EditText editText) { editText.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { editText.setCursorVisible(true); mPlaceholderTv.setVisibility(View.VISIBLE); return false; } }); //拿到当前XML文件的根布局 mChildContent = (FrameLayout) findViewById(android.R.id.content); //监听当前View的状态,进行通知回调,即"软键盘弹出"" View childew = mChildContent.getChildAt(0); childew.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { public void onGlobalLayout() { InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); int injectSoftHeight = 0; try { Method method = inputMethodManager.getClass().getDeclaredMethod("getInputMethodWindowVisibleHeight", null); method.setAccessible(true); injectSoftHeight = (Integer) method.invoke(inputMethodManager, null); } catch (Exception e) { e.printStackTrace(); } View decorView = getWindow().getDecorView(); Rect r = new Rect(); decorView.getWindowVisibleDisplayFrame(r); int rootHeight = decorView.getRootView().getHeight(); int rH = r.bottom - r.top; int measureDVHeight = rootHeight - rH; if (injectSoftHeight > 200) { mMeasureSoftKBHeight = injectSoftHeight < measureDVHeight ? injectSoftHeight : measureDVHeight; } else if (injectSoftHeight <= 200) { mMeasureSoftKBHeight = measureDVHeight; } if (mLastHeight != mMeasureSoftKBHeight) { if (mMeasureSoftKBHeight > 200) { LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) mPlaceholderTv.getLayoutParams(); int result = 0; result = mMeasureSoftKBHeight; layoutParams.height = result; mPlaceholderTv.setLayoutParams(layoutParams); mPlaceholderTv.postInvalidate(); setRecordBtnMargain(mMeasureSoftKBHeight); } else { setRecordBtnMargain(0); mNewStoryEt.setCursorVisible(false); mPlaceholderTv.setVisibility(View.GONE); } mLastHeight = mMeasureSoftKBHeight; } } }); }

项目地址

AserbaosAndroid (https://github.com/aserbao/AserbaosAndroid)

aserbao的个人Android总结项目,希望这个项目能成为最全面的Android开发学习项目,这是个美好的愿景,项目中还有很多未涉及到的地方,有很多没有讲到的点,希望看到这个项目的朋友,如果你在开发中遇到什么问题,在这个项目中没有找到对应的解决办法,希望你能够提出来,给我留言或者在项目github地址提issues,我有时间就会更新项目没有涉及到的部分!项目会一直维护下去。当然,我希望是Aserbao'sAndroid 能为所有Android开发者提供到帮助!也期望更多Android开发者能参与进来,只要你熟悉Android某一块,都可以将你的代码pull上分支供大家学习!

总结

这篇文章是新环境下的第一篇文章,断断续续就这么过了一周了,当时是关于软键盘的问题,全屏显示情况下,软键盘的显示,背景不移动!为什么到现在才发,主要有下面两方面原因:

  1. 希望今后所有的关于哪一方面的问题都能在一篇文章里面找到!
  2. 我希望自己的每篇文章内容是有价值的,无论是对别人还是自己,能够记录下一个系列下自己踩过的所有坑!

这篇文章最后定义为《初级》,意为所有常见开发中会遇到的文本问题都会在这篇文章中同步更新,后面会有两篇《中级》《高级》,中级会讲自定义软键盘的内容,高级会分析Andriod软件软键盘的整体实现架构!目前的思路是这样的!

本文关键词:可用虚拟键盘华为怎么关闭,电脑键盘开关是哪个键,电脑键盘用不了应该按哪个键恢复,电脑键盘哪个是删除键,电脑键盘关机快捷键。这就是关于《如何关闭软键盘,电脑键盘关机快捷键(Android文本)》的所有内容,希望对您能有所帮助!

本文链接:https://bk.89qw.com/a-448651

最近发表
网站分类