相关疑难解决方法(0)

Android:如何防止软键盘向上推?

我的应用程序底部有一个垂直滑动抽屉.当软键盘打开时,它会向上推动抽屉的标签,使其位于键盘顶部.我实际上希望它保持在屏幕的底部,当键盘显示时隐藏.

其他人遇到这个问题?知道如何解决它吗?

keyboard layout android view

352
推荐指数
15
解决办法
26万
查看次数

Android:显示键盘会移动我的组件,我想隐藏它们

我添加了一个有一些按钮的LinearLayOut我的屏幕是RelativeLayOut它自己

这是该线性布局管理器的代码

<LinearLayout
    android:orientation="horizontal"
    android:gravity="bottom"
    android:layout_alignParentBottom="true"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:id="@+id/Footer"
    android:layout_marginBottom="5dp">
Run Code Online (Sandbox Code Playgroud)

这是问题所在:

顶部有一个EditText组件,它在屏幕上弹出一个软键盘,并将我的页脚管理器放在键盘顶部,最终SHATTERS我的整个UI.

什么是确切的解决方案?

PS我已删除android:gravity="bottom"android:layout_alignParentBottom="true"逐一但坏运气,我没有得到期望的结果.

谢谢

android android-layout

63
推荐指数
2
解决办法
5万
查看次数

显示键盘时,屏幕布局会向上移动

假设我有以下布局:

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)

keyboard layout android

20
推荐指数
2
解决办法
4万
查看次数

java中的垃圾收集器 - 将对象设置为null

让我们假设,有一个Tree对象,具有根TreeNode对象,并且每个TreeNode都有leftNode和rightNode对象(例如BinaryTree对象)

如果我打电话:

myTree = null;
Run Code Online (Sandbox Code Playgroud)

树中相关的TreeNode对象真的会发生什么?将垃圾收集,或者我必须设置树对象内的所有相关对象?

java garbage-collection

19
推荐指数
2
解决办法
2万
查看次数

带有SoftInputMode adjustPan的Android EditText Multiline

我有一个活动来编辑一些文本,顶部栏在滚动视图内的多行模式下的EditText视图.在底部另一个视图有2个按钮.我想要实现的是编辑底部栏位于软键盘下方的文本.使用android很容易:在清单中使用windowSoftInputMode ="adjustPan".问题是如果edittext变得足够大,有几行,当编辑顶部栏时它会消失.仅在使用adjustPan模式时才会出现这种情况.但最糟糕的是,我认为这是一个错误,当光标位于edittext视图的末尾并使用D-Pad操纵杆向上滚动时,所有布局都被拉到顶部.

这是不关注EditText的屏幕:http://i.stack.imgur.com/pFadV.png

当滚动出现错误时,会发生这种情况:http://i.stack.imgur.com/eS8PP.png

我的布局如下:

   <?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="@color/BackgroundGray"
    android:gravity="top|center"
    android:orientation="vertical"
    android:windowSoftInputMode="adjustPan" >

    <RelativeLayout
        android:id="@+id/top_bar"
        android:layout_width="fill_parent"
        android:layout_height="45dip"
        android:layout_alignParentTop="true"
        android:background="@drawable/top_bar"
        android:focusable="true"
        android:focusableInTouchMode="true" >

        <ImageView
            android:id="@+id/bar_item_priority"
            android:layout_width="4dip"
            android:layout_height="34dip"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:contentDescription="@string/priority" />

        <EditText
            android:id="@+id/bar_title"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_marginLeft="6dip"
            android:background="@android:color/transparent"
            android:fadingEdge="vertical"
            android:gravity="center_vertical|left"
            android:hint="@string/default_title"
            android:inputType="text|textCapSentences"
            android:paddingLeft="10dip"
            android:textColor="#f3f3f3"
            android:textColorHint="#20ffffff"
            android:textSize="20dip"
            android:textStyle="bold" >
        </EditText>
    </RelativeLayout>

    <View
        android:id="@+id/main_top_bar_shadow"
        android:layout_width="fill_parent"
        android:layout_height="1dip"
        android:layout_below="@+id/top_bar"
        android:background="@color/TopBarShadow" />

    <LinearLayout
        android:id="@+id/meta_bar"
        android:layout_width="fill_parent"
        android:layout_height="25dip"
        android:layout_below="@+id/main_top_bar_shadow"
        android:background="#313435"
        android:descendantFocusability="blocksDescendants" >

        <TextView
            android:id="@+id/meta_date_modified"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:gravity="center_vertical|left"
            android:paddingLeft="10dip"
            android:paddingRight="10dip" …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-edittext

8
推荐指数
1
解决办法
4133
查看次数

带键盘调整调整大小的 Android BottomSheetBehavior

我在活动中有以下布局。

<CoordinatorLayout ...>
  <ScrollView ...>
    <LinearLayout
      ...
      android:orientation="vertical">
      <!-- Some stuff -->
      <EditText ...>
      <!-- Some more stuff -->
      <View
        android:id="@+id/keyboard_extender"
        ...>
    </LinearLayout>
  </ScrollView>
  <LinearLayout
    android:id="@+id/bottom_sheet"
    android:orientation="vertical"
    ...
    app:layout_behavior="android...BottomSheetBehavior">
    <!-- Even more stuff -->
  </LinearLayout>
</CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

我希望键盘不bottom_sheet应该向上推,但应该向上推keyboard_extender. 请注意,这bottom_sheet不是一个,BottomSheetDialog而只是一个使用android.support.design.widget.BottomSheetBehavior. 这不能更改为 aBottomSheetDialog因为我希望屏幕的其余部分与bottom_sheet

我从未将 的可见性设置bottom_sheetView.GONE。我只能从改变其状态BottomSheetBehavior.EXPANDED,以BottomSheetBehavior.COLLAPSED和背部。另外,我希望bottom_sheet只有当键盘不可见时才可见。

由于我需要keyboard_extender始终在键盘上方,因此我在 AndroidManifest.xml 中设置了android:windowSoftInputMode="adjustResize"(我认为这是不可避免的)

我有一个方法,当调用它时应该隐藏键盘并显示bottom_sheet,但我面临的问题是在键盘开始隐藏的同时bottom_sheet开始动画BottomSheetBehavior.EXPANDED,当键盘开始隐藏时,屏幕实际上被调整大小因为windowSoftInputMode="adjustResize" …

android android-softkeyboard bottom-sheet

6
推荐指数
0
解决办法
2533
查看次数

键盘覆盖屏幕而不是推高布局?

我有一个问题,当我点击我的键盘时,我的屏幕内容没有被推高 - 而键盘只是重叠ListView了我屏幕上的所有内容(即覆盖我).这是我的布局结构:

<ScrollView>
  <RelativeLayout>
  </RelativeLayout>
</ScrollView>
<ListView>
</ListView>
<LinearLayout>
  <EditText></EditText>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我把我嵌套RelativeLayout在一个ScrollView因为我认为这将使我的整个布局可滚动,这将"推高"所有布局,以便用户可以在键入他或她的响应时查看这些部分.我也有我的AndroidManifest.xml:android:windowSoftInputMode="adjustResize|stateVisible|stateAlwaysHidden"这是一个正在发生的事情的图像:

正在发生的事情的形象

这是我的代码.任何帮助,将不胜感激!

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" android:fitsSystemWindows="true"
    xmlns:fresco="http://schemas.android.com/tools"
    android:id="@+id/comments_coordinator_layout">

<android.support.design.widget.AppBarLayout
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:theme="@style/AppTheme.AppBarOverlay">

    <android.support.v7.widget.Toolbar
        android:id="@+id/comments_appbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:popupTheme="@style/AppTheme.PopupOverlay" />

</android.support.design.widget.AppBarLayout>

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/comments_coordinator_layout"
        >

        <RelativeLayout
            android:layout_marginTop="?attr/actionBarSize"
            android:id="@+id/view_post"
            android:layout_width="match_parent"
            android:paddingRight="5dp"
            android:paddingLeft="5dp"
            android:orientation="horizontal"
            android:layout_height="175dp"
            android:background="#e6e6e6">

            <com.facebook.drawee.view.SimpleDraweeView
                android:layout_marginTop="15dp"
                android:id="@+id/poster_picture"
                android:layout_width="75dp"
                android:layout_height="75dp"
                android:layout_marginLeft="10dp"
                fresco:placeholderImage="@mipmap/blank_prof_pic"
                fresco:roundedCornerRadius="5dp"
                />

            <TextView
                android:layout_marginLeft="5dp"
                android:layout_marginTop="15dp"
                android:layout_toRightOf="@id/poster_picture"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="15sp"
                android:textStyle="bold"
                android:id="@+id/poster_name"/>

            <TextView
                android:layout_alignParentRight="true" …
Run Code Online (Sandbox Code Playgroud)

android scrollview android-layout android-softkeyboard android-listview

5
推荐指数
1
解决办法
6090
查看次数

软键盘上推布局或隐藏操作栏

我的项目有软键盘问题。我已经设置了我的清单文件

android:windowSoftInputMode="adjustPan"
Run Code Online (Sandbox Code Playgroud)

这样我的键盘和 EditText 是可见的。但就像下面链接的问题一样,屏幕底部的按钮随着键盘一起向上推。

/sf/ask/386135151/# =

我的布局由一个带有 2 个 LinearLayout(一个顶部,一个底部带按钮)的 RelativeLayout 基础和一个位于中间的 ScrollView 组成,以获得其余的内容。当我尝试设置选项时

android:isScrollContainer="false" 
Run Code Online (Sandbox Code Playgroud)

这次在我的 ScrollView 上,我的操作栏向上推并从布局中隐藏。

我想要一种方法让键盘越过底部的线性布局滚动滚动视图的内容并且不向上推操作栏。

有什么建议?

谢谢!

顺便说一下,我的滚动视图有很多微调器、EditTexts 和 AutoSuggest

工作“解决方案”--> 帮助寻找答案

如果我将 RelativeLayout 更改为具有垂直方向的 LinearLayout 并从清单中删除此属性 android:windowSoftInputMode="adjustPan" 我有我想要的效果,操作栏不会消失并且底部按钮不会向上推。问题是,我丢失了底部按钮堆叠在底部。有时 ScrollView 比设备窗口小,所以这个解决方案只是帮助了我,但现在解决了我的真正问题。

信息:

<activity
   android:name=".app.HomeActivity"
   android:label="@string/title_activity_home"
   android:launchMode="singleTop"
   android:screenOrientation="portrait"
   android:windowSoftInputMode="adjustPan"/>
Run Code Online (Sandbox Code Playgroud)

申请主题:

<style name="CustomActionBarTheme" parent="@style/AppTheme">
    <item name="android:actionBarStyle">@style/MyActionBar</item>
</style>

<!-- ActionBar styles -->
<style name="MyActionBar" parent="@android:style/Widget.Holo.ActionBar">
    <item name="android:background">@drawable/shape_bar</item>
    <item name="android:titleTextStyle">@style/MyActionBarTitleText</item>
</style>
Run Code Online (Sandbox Code Playgroud)

XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:id="@+id/fragment_detalhes_pedido2_linear_top"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingTop="@dimen/activity_vertical_margin"
            android:paddingBottom="@dimen/activity_vertical_margin"
            android:paddingLeft="@dimen/activity_horizontal_margin" …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-softkeyboard

4
推荐指数
1
解决办法
5851
查看次数