键盘不在上面滚动EditText

时间:2014-12-19 18:19:06

标签: java android

我正在使用此代码。但是,当我点击EditText打开键盘时,视图并不完全。为什么视图不会一直向上,EditText隐藏在键盘背后

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center_horizontal"
    android:background="@drawable/main_bg" 
    android:id="@+id/mainLayout"
    android:focusableInTouchMode="true"
    >

       <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:orientation="horizontal"
        android:id="@+id/topBar"
        android:background="@drawable/top_bar_bg"
     >

        <LinearLayout 
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                android:orientation="horizontal"
                android:gravity="center_horizontal|bottom"
                android:layout_centerInParent="true"
            >

                 <ImageView 
                     android:id="@+id/loadingAnimationImg"
                     android:layout_height="35dp"
                     android:layout_width="35dp"
                     android:adjustViewBounds="true"
                     android:contentDescription="@null"
                     android:background="@drawable/img05"/>

                 <ImageView 
                     android:layout_marginBottom="5dp"
                     android:layout_height="wrap_content"
                     android:layout_width="120dp"
                     android:adjustViewBounds="true"
                     android:contentDescription="@null"
                     android:src="@drawable/simple_logo"/>

         </LinearLayout>
    </RelativeLayout>

    <GridView
            android:layout_marginTop="5dp"
            android:layout_width="match_parent"
            android:layout_height="300dp"
            android:id="@+id/gridView"
            android:numColumns="5"
            android:verticalSpacing="5dp" />

    <TextView 
        android:layout_marginTop="5dp"
        android:layout_marginLeft="10dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="12sp"
        android:textColor="@android:color/white"
        android:text="@string/hashtagText"
        />


    <com.trib.devicebee.custom.FlowLayout 
        android:id="@+id/flowLayout"
        android:layout_margin="10dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        />

    <EditText 
        android:layout_margin="10dp"
        android:id="@+id/hashTagsText"
        android:hint=""
        android:inputType="textFilter" 
        android:singleLine="true"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="12sp"
        />

    <Button
        android:id="@+id/goAheadBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/go_ahead_btn"
        android:layout_margin="10dp"
         />

</LinearLayout>

3 个答案:

答案 0 :(得分:1)

尝试在AndroidManifest.xml中使用 android:windowSoftInputMode 属性 - &#34; adjustPan&#34; 可能就是答案。

<activity
    android:name="MyActivity"
    android:windowSoftInputMode="adjustPan"
    android:configChanges="orientation|keyboardHidden|screenSize"
    >
</activity>

答案 1 :(得分:0)

我想出的最佳解决方案是将所有内容放在 scrollView

  • 现在在清单

    <activity
        android:name="MyActivity"
        android:windowSoftInputMode="adjustResize">
    </activity>
    
  • 现在在要关注的editText上使用onfocusChangeListener

    editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View view, boolean b) {
            if (b){
            scrollView.smoothScrollTo(0,editText.getBottom()+5);
            }
        }
    });
    

我们已经完成了。

答案 2 :(得分:-1)

https://developer.android.com/training/keyboard-input/visibility.html

android:windowSoftInputMode =“adjustResize”