导航:首页 > 操作系统 > android布局输入框

android布局输入框

发布时间:2023-01-24 08:33:06

android 键盘将布局顶上去

效果图:

布局文件:

添加 android:fitsSystemWindows="true"

注册清单:

整个布局都顶上去

AndroidManifest.xml 添加 android:windowSoftInputMode="adjustResize|stateHidden"

只把输入框顶上去

AndroidManifest.xml 添加 android:windowSoftInputMode="stateHidden|adjustPan"

㈡ Android 点击输入框弹出键盘,布局随键盘往上移动

一、效果图:

二、Code:

/**

*  1、获取main在窗体的可视区域

*  2、获取main在窗体的不可视区域高度

*  3、判断不可视区域高度,之前根据经验值,在有些手机上有点不大准,现改成屏幕整体高度的1/3

*      1、大于屏幕整体高度的1/3:键盘显示  获取Scroll的窗体坐标

*                          算出main需要滚动的高度,使scroll显示。

*      2、小于屏幕整体高度的1/3:键盘隐藏

*

* @param main 根布局 

* @param scroll 需要显示的最下方View

*/

public static void addLayoutListener(final View main, final View scroll) {

    main.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {

        @Override

        public void onGlobalLayout() {

            Rect rect = new Rect();

            main.getWindowVisibleDisplayFrame(rect);

            int screenHeight = main.getRootView().getHeight();

            int mainInvisibleHeight = main.getRootView().getHeight() - rect.bottom;

            if (mainInvisibleHeight > screenHeight / 4) {

                int[] location = new int[2];

                scroll.getLocationInWindow(location);

                int srollHeight = (location[1] + scroll.getHeight()) - rect.bottom;

                main.scrollTo(0, srollHeight);

            } else {

                main.scrollTo(0, 0);

}

}

});

}

三、调用方式:

在Activity的onCreate()中调用,

仅此记录。

㈢ android布局问题我想实现图上的效果,是一个按钮+一个输入框求大神指导

这个问题很简单!1.最外面使用一个linearLayout背景设置为那个橘黄色的图片。
2.你那个按钮也可以采用背景图片(imgeButton、或者textView什么都可以)
3.输入框采用EditText

㈣ 安卓布局 一个输入框我想向让他右移一点距离不贴着边加 用的是linerlayout 怎么弄

EditText布局属性中设置:android:layout_marginLeft="20dp"

㈤ Android 输入法对话框的布局

显然不行 除非你自己写 输入法是一个应用 布局是他们自己写的 只能是按照手机方向来显示 查看原帖>>

㈥ Android WebView加载页面的输入框被软键盘遮挡的问题

当实现沉浸式状态栏时遇到软件盘遮挡WebView页面的输入框的问题,这是实现方式有问题,应该检查你的实现方式。

1)加载WebView的Activty不能设置为全屏模式,即Theme.NoTitleBar.Fullscreen,可以使用Theme.Holo.Light.NoActionBar

2)沉浸式状态栏的实现方式,在Activity的根布局里加两个属性:

android:clipToPadding="true" 设置你的绘制区域在padding里面

android:fitsSystemWindows="true" 调整view的padding属性为系统窗口 留出空间

在Activity的onCreate方法里面设置标题栏为透明,即:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_ST ATUS);

3)Activity里面不能设置android:windowSoftInputMode的属性,使用默认的属性即可

以上3步即可实现沉浸式状态栏并且能保证你的WebView加载的HTML页面的输入框不被软键盘遮挡。



0



0

上一篇 Android Studio在SVN上创建分支

下一篇 Android Converty问题解决方案

相关文章推荐

• android中webview加载html输入框不能输入内容问题记录

• 如何解决Android软键盘盖住输入框的问题

• Android 软键盘盖住输入框的问题

• Android 软键盘盖住输入框的问题

• Android 软键盘盖住输入框的问题

• Android 软键盘盖住输入框的问题

• Android 软键盘盖住输入框的问题

• android popupwindow 中输入框被软键盘弹出挡住问题解决

• ios解决软键盘遮挡输入框问题

• Android软键盘遮挡输入框解决方法

参考知识库

Android知识库

34080 关注 | 2937 收录

猜你在找

Android中的五大布局

零基础学软件之HTML语言

【Android APP开发】Android高级商业布局快速实现

html5的app开发

Android前沿技术—《软件框架搭建》

Android移植基础

html系统学习篇

零基础学习HTML5—html+css基础

Android开发之初窥门径

Android之数据存储

关闭

㈦ Android dialog 遮住输入框的解决思路

在工作中经常会遇到弹出的dialog有输入框的情况,屏幕大了还好,屏幕小了之后就特别容易出现输入框被软键盘遮住的情况,下面就是我在实际想中中遇到的

从上图可以看出输入框已经看不到了,遇到这种情况的第一个思路都是在dialog的style中添加

<item name="android:windowSoftInputMode">adjustPan</item>,我也试了下基本上没用。然后换了个思路,既然软键盘弹出来了,为什么不能让dialog向上移动同样的距离呢。思路有了,下面就是把他实现了。

首先就是要计算软键盘的高度,由于google并没有给出具体的方法来计算软键盘的高度,这时候我们就只能根据布局的高度变化来计算了。首先需要计算出屏幕的bottom坐标,然后监控布局的变动判断变动后的bottom和初始的bottom的差值,一般肉眼观察软键盘的高度差不多是屏幕高度的1/3,所以就假设bottom往上移动了屏幕的1/3的距离就认为软件盘弹出来了,当然也可以根据其他值来判断,下面贴出具体方法:

/**

* activity中判断软键盘是否显示

* @param activity

* */

fun isKeyboardShowing(activity: Activity): Boolean {

val screenHeight = activity.window!!.decorView.height.toDouble()

//获取view的可见区域

    val rect = Rect()

activity.window!!.decorView.getWindowVisibleDisplayFrame(rect)

return (2.0 /3.0) * screenHeight > rect.bottom.toDouble()

}

接下来我们来计算出软件盘的高度,经过我在多个测试机上实验发现初始时bottom就是屏幕的高度,下面是计算键盘高度的具体方法

/**

* activity中计算软键盘的高度

* @param activity

* */

fun getKeyboardHeight(activity: Activity): Int {

val displayMetrics = DisplayMetrics()

activity.windowManager.defaultDisplay.getMetrics(displayMetrics)

val screenHeight = displayMetrics.heightPixels

    val rect = Rect()

activity.window!!.decorView.getWindowVisibleDisplayFrame(rect)

return screenHeight - rect.bottom

}

有了高度之后一切就好办了我们只需要在软键盘弹出来的时候把dialog往上移动就行,在移动方式上我选择了设置LayoutParams的方式,开始时想设置底部margin的,结果发现没作用,dialog一点不移动,最后只好设置上边的margin为负值

if (SoftUtils.isKeyboardShowing(context)) {

val lp =mRootView.layoutParams as ViewGroup.MarginLayoutParams

if (lp.topMargin ==0) {

lp.topMargin = -SoftUtils.getKeyboardHeight(context)

if (mRootView.height

lp.height =mRootOriginHeight

        }

mRootView.layoutParams = lp

}

}else {

if (mRootOriginHeight ==0) {

mRootOriginHeight =mRootView.height

    }

val lp =mRootView.layoutParams as ViewGroup.MarginLayoutParams

if (lp.topMargin <0) {

lp.topMargin =0

        mRootView.layoutParams = lp

}

}

其中mRootView是dialog最外层的布局。在这里面比较重要的一点监测方式,在哪里监测软键盘的弹出动作,在activity中可以监测onWindowFocusChanged方法,但是如果封装了dialog的话,dialog中的onWindowFocusChanged并不会起作用,在这里我选择了使用ViewTreeObserver和监听,通过给mRootView的ViewTreeObserver添加addOnGlobalLayoutListener来实时判断,下面是完整的方法

private fun setSpace() {

val treeObserver =mRootView.viewTreeObserver

    treeObserver.addOnGlobalLayoutListener{

        if (SoftUtils.isKeyboardShowing(context)) {

val lp =mRootView.layoutParams as ViewGroup.MarginLayoutParams

if (lp.topMargin ==0) {

lp.topMargin = -SoftUtils.getKeyboardHeight(context)

if (mRootView.height

lp.height =mRootOriginHeight

                }

mRootView.layoutParams = lp

}

}else {

if (mRootOriginHeight ==0) {

mRootOriginHeight =mRootView.height

            }

val lp =mRootView.layoutParams as ViewGroup.MarginLayoutParams

if (lp.topMargin <0) {

lp.topMargin =0

                mRootView.layoutParams = lp

}

}

}

}

在这里当软键盘弹出的时候重新设置了下dialog的高度,因为有时候软键盘的弹出会使dialog的高度压缩,所以弹出的时候重新设置下就好了。

这就是我的一个解决思路,当然完全按这个写的话当输入框较多时也可能出问题,最上层的输入框跑屏幕之外去了,这种情况下我们只需要根据输入框的位置动态的计算dialog需要往上移动的距离就行,不要一直设置为计算出来的软键盘的高度。

下图是解决之后的UI

㈧ 安卓给输入框设置默认值

通过WebView显示一个网页,并给输入框设置默认值。
在有EditText的布局中,可以对固定文本设置默认聚焦,这样实现默认情况下输入框不聚焦,此外,若要实现点击输入框外部关闭软键盘并且让输入框失去焦点,则可重写dispatchTouchEvent方法,捕捉到输入框获取到焦点后再进行相应操作。
安卓系统默认参数的修改通常在新项目开始之初,咱们须要针对客户需求进行各类系统默认属性的配置,一般这些属性都是经过build.prop、settings.db、default.xml、一些功能package下的config.xml等来进行初始化配置的。

㈨ android 系统输入法如何可以使上面带有朋友圈一样的输入框

这个简单,你在界面用ScrollView布局,
里面用一个RelativeLayout铺满父窗口,RelativeLayout用布局,居下,这样,当获取焦点的时候,就会自动上去了,
还需要在manifest文件中,对activity设置android:windowSoftInputMode="stateHidden|adjustResize"

阅读全文

与android布局输入框相关的资料

热点内容
安卓手机mp3压缩工具 浏览:214
程序员和交易员 浏览:422
怎么变字体样式app 浏览:173
名字叫汤什么的视频app 浏览:209
金属加密键盘联系电话 浏览:335
自制解压牛奶盒子教程 浏览:64
编译高手的图片 浏览:922
单片机数码管显示时分秒 浏览:780
手指解压最简单的方法 浏览:345
韩国邮箱服务器地址 浏览:967
android版本介绍 浏览:410
pdf文件加密软件 浏览:410
长沙住房app怎么看备案 浏览:603
安装加密软件的电脑会被监控么 浏览:221
java微博源码 浏览:569
堆排序简单实现python 浏览:461
单片机引脚与键盘的关系 浏览:132
压缩火柴盒制作 浏览:38
谷歌地图android偏移 浏览:214
bitlocker硬盘加密空间 浏览:238