有没有办法知道屏幕上显示的键盘大小?
我正在使用Cocos2dx进行编程,但我想知道Android部分或Cocos部分屏幕中显示的键盘高度,这没关系.
我知道Keyboard有一个getHeight()方法,但我不想创建新的键盘,我想使用默认键盘.
假设我有以下布局:
http://i47.tinypic.com/2vchnih.png
当我点击底部的编辑文本时,我得到了这个:
http://i45.tinypic.com/352lym9.png
您可以注意到顶部的图像向上,整个布局移动.这是我的xml这个布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFFFF" >
<LinearLayout
android:id="@+id/header"
android:layout_width="fill_parent"
android:layout_height="75dp"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:isScrollContainer="true"
android:background="@drawable/header" >
</LinearLayout>
<ScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/scrollauthentication"
android:layout_below="@+id/header"
android:background="#FFFFFF"
android:fillViewport="true" >
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#FFFFFF"
android:id="@+id/authenticationrelativelayout">
<TextView
android:id="@+id/login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/header"
android:layout_marginLeft="30dp"
android:layout_marginTop="20dp"
android:text="login"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/lighter_orange"
android:textSize="28dp" />
<TextView
android:id="@+id/usernameTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/login"
android:layout_below="@+id/login"
android:layout_marginTop="16dp"
android:text="username"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/dark_gray" />
<EditText
android:id="@+id/user"
android:layout_width="260dp"
android:layout_height="42dp"
android:layout_alignLeft="@+id/usernameTextView"
android:layout_below="@+id/usernameTextView"
android:background="@drawable/edittext_selector"
android:imeOptions="actionDone"
android:lines="1"
android:paddingLeft="10dp" />
<TextView
android:id="@+id/passwordTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/user"
android:layout_below="@+id/user" …Run Code Online (Sandbox Code Playgroud) 我有一个活动,上面有一堆EditText字段,windowSoftInputMode设置为adjustPan,这主要是我想要的,但对于布局底部的editText,它不够平衡.它将平移以显示多行编辑文本的顶行,但只要您按Enter键,光标就会向下移动一行,现在隐藏在键盘下方.
无论如何我可以进一步平移,以便editText的顶部一直在窗口的顶部.
使用adjustResize肯定不会做我想要的,pan是正确的,只需要它进一步平移.
最新的V14偏好支持库.
API上的半透明主题 > 19
EditTextPreferenceCompat内PreferenceFragmentCompat
点击EditTextPreferenceCompat之后弹出EditTextPreferenceDialogFragmentCompat,其中控件与软键盘重叠,这是错误的:
我在两个片段之间有一个动画.第二个片段将调出一个键盘.由于键盘将覆盖屏幕的某些部分,我手动需要在那里调整间隔视图以调整我的视图.使用android:windowSoftInputMode="adjustResize"将导致我的过渡动画变得超级滞后.使用adjustNothing在另一方面会使其光滑.
那么有没有办法获得键盘高度而不使用adjustResize?
编辑:
我的问题是不同的fe 是否有任何方式在Android中获取设备的虚拟键盘的高度,因为我无法添加adjustResize
我正在开发版本为2.9.0的phonegap应用程序;
使用RWD Bookmarklet(http://responsive.victorcoulon.fr/)在桌面浏览器中对布局进行了全面测试,并且工作正常.但是,在移动设备或仿真器中进行测试时,布局中断了.经过一点点测试,我发现问题是状态栏的高度.将应用程序更改为全屏,问题解决了.
但是现在,当我专注于输入字段时,屏幕没有被调整,因此,键盘覆盖输入字段!
在查看了所有问题和相关问题之后,我找到了这个,这对我来说很有意义,但我想知道是否有办法让调整盘全屏工作,所以我不需要调整我的所有组件高度,根据设备等计算不同的状态栏高度
代码
form.html
<form id="login-form">
<div class="form-group">
<input type="text" name="login" class="form-control" id="login"
placeholder="xxxxxxx@example.com">
</div>
<div class="form-group">
<input type="password" name="pass" class="form-control"
id="password" placeholder="*******">
</div>
<a class="pull-right login-btn" id="btn-login" href="#"><span
class="image-replacement"></span></a>
<a class="pull-right login-btn" id="btn-cadastro" href="#"><span class="image-replacement"></span></a>
</form>
Run Code Online (Sandbox Code Playgroud)
Android Manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:windowSoftInputMode="adjustPan"
package="com.com.app" android:versionName="1.0" android:versionCode="1" android:hardwareAccelerated="true">
<supports-screens
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:xlargeScreens="true"
android:resizeable="true"
android:anyDensity="true"
/>
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission …Run Code Online (Sandbox Code Playgroud) 我已经阅读了这个问题的多个帖子,解决方案就是使用OnGlobalLayoutListener.这里的问题是我的应用程序在清单中声明了以下内容:
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
Run Code Online (Sandbox Code Playgroud)
所以inputmode调整不起作用,我不能使用 OnGlobalLayoutListener
如何获得软输入可见/消失的事件,我还需要获得输入的高度以调整我当前的布局bottomMargin.
谢谢.
我有一个活动,其布局内容如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize"
style="@style/ToolBarStyle.Event" />
<com.mypackage.corecode.ui.view.SlidingTabLayout
android:id="@+id/sliding_tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/primary_color" />
<android.support.v4.view.ViewPager
android:id="@+id/vendor_main_tabview_pager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
在viewpager中,我有一个片段,它具有以下布局:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:weightSum="3"
android:orientation="horizontal">
<EditText
android:theme="@style/ScrollableContentThemeNoActionBar"
android:id="@+id/edit_text_vendor_sms_phone_number"
android:layout_width="0dp"
android:layout_weight="2"
android:layout_height="wrap_content"
android:inputType="number" />
<Button
android:id="@+id/button_send_sms"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
/>
</LinearLayout>
</LinearLayout>
</ScrollView>
Run Code Online (Sandbox Code Playgroud)
当片段内的内容不适合屏幕时,滚动视图允许用户查看屏幕下方的内容.(按预期工作)
问题是当edittext获得焦点时,键盘与edittext区域重叠,而不是滚动视图导致内容滚动.
我希望片段能够处理键盘和scrollview以适应屏幕上的键盘.
或者我错了,是否对键盘负责?由于活动布局中的根视图是linearlayout,它是否限制了扩展?
我尝试用滚动视图包装活动布局的整个内容,但是如果我没有给它一个固定的大小,这次viewpager不会出现在屏幕上.即使我这样做,我最终在片段内部有一个滚动视图,它位于主布局的滚动视图下方,而键盘仍然在编辑文本上方盘旋.
我在这里有点迷失,我的目标是能够在编辑文本聚焦时滚动片段内容,而是键盘当前与edittext重叠.
我的应用程序有问题:由于AndroidBug5497解决方案,版本> = Lollipop上的一个奇怪的行为.
我正在使用协调器布局,折叠工具栏,片段,浮动动作按钮和小吃吧,一切都在前棒棒糖上工作正常.我需要在键盘上显示我的Fab,并使用AndroidBug5497解决方法.(根据约瑟夫约翰逊的解决方案)
但是通过这种解决方案,小吃店变得疯狂.我正在使用所有android的支持库23.2.+,并且在我的清单中我已经设置android:windowSoftInputMode="stateAlwaysHidden|adjustResize"了这个活动
那是我活动的结构:
<Coordinator Layout>
<Collapsing Toolbar />
<Linear Layout>
<Fragment />
</Linear Layout>
<Floating Action Button />
</Coordinator Layout>
Run Code Online (Sandbox Code Playgroud)
这就是片段:
<Linear Layout>
<Nested Scroll View>
<Linear Layout>
<CardView 1/>
<CardView 2/>
<CardView n/>
</Linear Layout>
</Nested Scroll View>
</Linear Layout>
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.非常感谢.
android-layout floating-action-button android-5.0-lollipop android-snackbar coordinator-layout
我遇到了一个奇怪的问题:片段底部有一个空白区域,我无法摆脱它.值得一提的是,如果我点击任何按钮,这个空间就会消失.
任何帮助表示赞赏!请在下面找到屏幕截图和布局代码.
DetailActivity布局:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/detail_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="org.ogasimli.manat.activity.DetailActivity"
tools:ignore="MergeRootFrame" />
Run Code Online (Sandbox Code Playgroud)
DetailFragment布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="org.ogasimli.manat.fragment.DetailActivityFragment"
android:background="@color/colorAccent">
<android.support.design.widget.CoordinatorLayout
android:id="@+id/detail_result_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:visibility="gone"
tools:visibility="visible">
<android.support.design.widget.AppBarLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
app:elevation="0dp"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar_detail"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.AppBarOverlay"/>
</android.support.design.widget.AppBarLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_marginTop="?actionBarSize"
android:weightSum="7">
<include layout="@layout/detail_chart_grid"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="4.5"/>
<include layout="@layout/detail_extras_grid"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="2.5"/>
</LinearLayout>
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab_share_details"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="24dp"
android:elevation="8dp"
android:src="@drawable/ic_share"
app:layout_anchor="@id/cardview_details"
app:layout_anchorGravity="top|right|end"
app:rippleColor="@color/colorPrimary"
tools:targetApi="lollipop"/>
</android.support.design.widget.CoordinatorLayout>
<LinearLayout
android:id="@+id/detail_error_view"
android:layout_width="match_parent"
android:layout_height="wrap_content" …Run Code Online (Sandbox Code Playgroud)