【发布时间】:2018-06-12 14:23:41
【问题描述】:
我有一个布局,它由 EditText 和 RelativeLayout 组成,它们有一个固定的高度,以 % 为单位,还有 GridView,它位于它们之间匹配父项(匹配约束)。
一切都很好,虽然没有键盘。出现键盘时 % 不是从整个屏幕计算,而是从没有键盘的部分计算。我需要在键盘出现时改变GridView的大小,以%计算的剩余元素没有改变。
在此之前,我计算了屏幕高度的像素高度,并以编程方式设置它。但我想在布局级别做到这一点。真的是不可能做到的。
我尝试将 ConstraintLayout 与 guidline layout_constraintGuide_percent 和 PercentageRelativeLayout 一起使用,如根视图 - 无用。也改变 manifest 中的活动 windowSoftInputMode。
布局 xml
<android.support.constraint.ConstraintLayout
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"
tools:context=".activity.ActivityAllApps">
<RelativeLayout
android:id="@+id/rlTabTitleAllApps"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@+id/qlTabTitle"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:background="@drawable/background_action_bar9">
<include layout="@layout/include_sortings"/>
<Button
android:id="@+id/bTest"
android:layout_width="35dp"
android:layout_height="35dp"
android:layout_alignBottom="@+id/ibSettingsMenu"
android:layout_marginStart="36dp"
android:layout_toEndOf="@+id/rlSorts"
android:onClick="onTestButton2Click"
android:text="T"/>
<ImageButton
android:id="@+id/ibSettingsMenu"
style="@style/MenuButtonSettings"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:onClick="onSettingsMenuClick"
tools:background="@drawable/settings_menu_button"/>
</RelativeLayout>
<GridView
android:id="@+id/gvAllApps"
android:layout_width="match_parent"
android:layout_height="0dp"
android:horizontalSpacing="2dp"
android:numColumns="4"
android:overScrollMode="never"
android:padding="2dp"
android:verticalSpacing="2dp"
app:layout_constraintBottom_toTopOf="@+id/etSearch"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/rlTabTitleAllApps"/>
<EditText
android:id="@+id/etSearch"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:hint="@string/search_app"
android:textAlignment="center"
android:textCursorDrawable="@drawable/cursor_edit_text9"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/qlSearch"
tools:background="@drawable/search_app_background9"/>
<android.support.constraint.Guideline
android:id="@+id/qlTabTitle"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
app:layout_constraintGuide_percent="@dimen/constraint_tab_top"/>
<android.support.constraint.Guideline
android:id="@+id/qlSearch"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
app:layout_constraintGuide_percent="@dimen/constraint_all_search"/>
</android.support.constraint.ConstraintLayout>
对不起我的英语。
【问题讨论】:
标签: android android-layout percentage android-constraintlayout