键盘顶部的多余空间-Android

时间:2019-01-31 07:08:46

标签: android xml android-layout

我不明白我的设计有什么问题。这是代码,

<RelativeLayout 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="wrap_content"
    tools:context=".emi.advanced_emi.AdvancedEmiActivity">
<android.support.design.widget.CoordinatorLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_above="@id/adlayout"
    android:layout_alignParentTop="true"
    android:fitsSystemWindows="true">

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

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

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

    <include layout="@layout/content_advanced_emi" />


</android.support.design.widget.CoordinatorLayout>
<RelativeLayout
    android:id="@+id/adlayout"
    android:layout_width="match_parent"
    android:layout_height="@dimen/adheight"
    android:layout_alignParentBottom="true"
    android:layout_gravity="bottom"
    android:background="@color/c5" />
</RelativeLayout>

content_advanced_emi具有一个滚动视图,其中包含edittext和其他一些视图。这是代码的一部分,

<?xml version="1.0" encoding="utf-8"?>
<ScrollView
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    android:id="@+id/main_emiadvance"
    android:scrollbars="none"
    android:fillViewport="true"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
<LinearLayout

    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <LinearLayout
        android:layout_margin="10dp"
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:weightSum="1">
        <TextView
            android:padding="5dp"
            android:gravity="center_vertical"
            android:layout_width="0dp"
            android:layout_weight="0.5"
            android:layout_height="match_parent"
            android:textColor="@color/commontext"
            android:text="Loan Amount "
            android:textStyle="bold"/>

        <EditText
            android:background="@drawable/enabled_edittext"
            android:padding="8dp"
            android:inputType="numberDecimal"
            android:id="@+id/loan"
            android:layout_width="0dp"
            android:maxLength="15"

            android:layout_height="wrap_content"
            android:layout_weight="0.5"
            android:hint="Rs."/>

    </LinearLayout>
    ....</ScrollView>

我的问题是打开键盘时,键盘上方有一个额外的间隙(我想是50 dp)。我该如何解决?

enter image description here enter image description here

2 个答案:

答案 0 :(得分:1)

尽管评论提出了一些好的建议,但我无法说出多余的空间。但是,我可以向您展示一种确定空间性质的方法。

Android Studio中有一个非常方便的工具,称为“布局检查器”。该工具可让您查看仿真器或设备,以窥视显示的布局。

从“工具”菜单中调用布局检查器:

enter image description here

在“选择过程”对话框中,选择您的过程。这是“ MyApplication”的过程。

enter image description here

显示布局和屏幕图像。您可以单击树的各个部分或布局本身以查看内容。如果您在此处看到空白,则应该能够确定其性质。

enter image description here

但是,如果看不到空间,则需要更深入地研究。要查看键盘,请再次调用布局检查器(“工具”->“布局检查器”),然后选择固定键盘的过程。对我来说,它是com.google.android.inputmethod.latin,但对您来说可能有所不同。

enter image description here

在这里,我们可以看到键盘上方的候选人列表。如果您在此处看到自己的空间,则为候选列表或与键盘相关的其他内容。

enter image description here

所以,这不是解决方案,但是它应该可以帮助您步入正轨。

答案 1 :(得分:1)

就是一个RelativeLayout,其中layout_gravity="bottom"layout_height="@dimen/adheight"

<RelativeLayout
    android:id="@+id/adlayout"
    android:layout_width="match_parent"
    android:layout_height="@dimen/adheight"
    android:layout_alignParentBottom="true"
    android:layout_gravity="bottom"
    android:background="@color/c5" />

建议在未隐藏键盘的情况下隐藏adlayout

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    if (getHeight() > MeasureSpec.getSize(heightMeasureSpec)){
        this.mBottomAdLayout.setVisibility(View.GONE);

    } else {
        this.mBottomAdLayout.setVisibility(View.VISIBLE);
    }
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}