我不明白我的设计有什么问题。这是代码,
<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)。我该如何解决?
答案 0 :(得分:1)
尽管评论提出了一些好的建议,但我无法说出多余的空间。但是,我可以向您展示一种确定空间性质的方法。
Android Studio中有一个非常方便的工具,称为“布局检查器”。该工具可让您查看仿真器或设备,以窥视显示的布局。
从“工具”菜单中调用布局检查器:
在“选择过程”对话框中,选择您的过程。这是“ MyApplication”的过程。
显示布局和屏幕图像。您可以单击树的各个部分或布局本身以查看内容。如果您在此处看到空白,则应该能够确定其性质。
但是,如果看不到空间,则需要更深入地研究。要查看键盘,请再次调用布局检查器(“工具”->“布局检查器”),然后选择固定键盘的过程。对我来说,它是com.google.android.inputmethod.latin
,但对您来说可能有所不同。
在这里,我们可以看到键盘上方的候选人列表。如果您在此处看到自己的空间,则为候选列表或与键盘相关的其他内容。
所以,这不是解决方案,但是它应该可以帮助您步入正轨。
答案 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);
}