2017-10-28 77 views
-3

我的布局有问题。当键盘输入出现时,线性布局在ScrollView中调整大小

我有一个滚动视图里面有一个线性布局和内部线性布局有一些TextInputLayout。

如果用户关注文本输入并且用户按下线性布局(没有任何文本输入),则文本输入将不会聚焦。我已将输入的父级线性布局设置为可聚焦。 我希望用户按任何不是文本输入的区域,并且焦点输入将不重点。

这就是为什么我的滚动视图的宽度和高度匹配的父母和其内部的线性布局匹配父母的宽度,使其覆盖整个屏幕。但不是线性布局的高度,因为高度应该是包装内容

当文本输入被聚焦并且键盘输入显示时,所有内容都会被推上一点点,我可以垂直滚动它们。

但是,当我在键盘下方滚动时,线性布局似乎不再存在,因为它看起来像是只剩下滚动视图,这意味着如果用户在那里按下然后他们将不会不专心。

我已经尝试了像adjustPan,adjustResize,fillViewPort重量等各种方法,但没有一个工作。请帮忙。我附上了两张截图。

注意: 我已将Scroll View背景设置为紫色,将Linear Layout设置为蓝色以便于可视化。

此截图是当应用程序启动时,没有键盘输入,一切都很好。 https://i.stack.imgur.com/7MqIL.png

这是键盘输入出现的地方,如果我尝试通过按紫色区域来清除焦点,它将无法工作。我希望蓝色或线性布局覆盖所有滚动视图。 https://i.stack.imgur.com/q6jCn.png

<ScrollView 
    android:id="@+id/scrollview" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fillViewport="true" 
    android:orientation="vertical" 
    android:background="@android:color/holo_purple" 
    app:layout_constraintRight_toRightOf="parent" 
    app:layout_constraintLeft_toLeftOf="parent" 
    app:layout_constraintTop_toTopOf="parent" 
    app:layout_constraintBottom_toBottomOf="parent"> 

    <LinearLayout 
     android:id="@+id/linearlayout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:paddingLeft="20dp" 
     android:paddingRight="20dp" 
     android:paddingTop="100dp" 
     android:paddingBottom="20dp" 
     android:layout_margin="0dp" 
     android:fillViewport="true" 
     android:focusable="true" 
     android:focusableInTouchMode="true" 
     android:descendantFocusability="beforeDescendants" 
     android:textAlignment="center" 
     android:layout_gravity="center" 
     android:background="@android:color/holo_blue_dark"> 

     <android.support.design.widget.TextInputLayout> 
     ... 
     ... 
    </LinearLayout> 
</ScrollView> 
+1

分享与问题文件.. –

+0

哇离题!难以置信 –

回答

0

取下线性布局中的所有填充和给它TextInputLayout并采取线性布局的高度匹配父像

机器人:layout_height =“match_content”

相关问题