2017-01-21 13 views
0

Keyboard pushes the view upキーボードがアンドロイドスタジオのキーボードの上にある要素を押さないようにするにはどうすればいいですか?

キーボードがアクティブになるたびに、OPEN、SAVE、CLEARの3つのボタン(上のスクリーンショットに表示されている)が上がります。彼らが上がるのを防ぐ方法はありますか?私はここに与えられたすべてのソリューションを試してみた

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/activity_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:fitsSystemWindows="true" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="p32929.cgpacalculator.Activities.MainActivity"> 

    <TextView 
     android:layout_width="match_parent" 

     android:layout_height="wrap_content" 
     android:text="@string/input" 
     android:textAlignment="center" 
     android:textSize="15sp" 
     android:textStyle="normal|bold" /> 


    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:weightSum="100"> 

     <EditText 
      android:id="@+id/mainCredit" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="50" 
      android:hint="Credit" 
      android:inputType="numberDecimal" 
      android:maxLines="1" 
      android:nextFocusDown="@+id/mainGpa" 
      android:textAlignment="center" 
      android:textColor="#000000" 
      android:textColorHint="@color/hint" /> 

     <EditText 
      android:id="@+id/mainGpa" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="50" 
      android:hint="GPA" 
      android:imeOptions="actionDone" 
      android:inputType="numberDecimal" 
      android:textAlignment="center" 
      android:textColor="#000000" 
      android:textColorHint="@color/hint" /> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     android:paddingBottom="7dp" 
     android:weightSum="10"> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:layout_weight="3" 
      android:gravity="center" 
      android:text="CGPA = " 
      android:textAlignment="center" 
      android:textColor="#000000" 
      android:textSize="24sp" /> 

     <TextView 
      android:id="@+id/mainCGPA" 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:layout_weight="4" 
      android:gravity="center" 
      android:text="0.00" 
      android:textAlignment="center" 
      android:textColor="#000000" 
      android:textSize="24sp" /> 

     <Button 
      android:id="@+id/MainAdd" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="3" 
      android:gravity="center" 
      android:onClick="Clicked" 
      android:text="Add" /> 

    </LinearLayout> 

    <TextView 
     android:id="@+id/infotext" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:textAlignment="center" 
     android:textColor="#5c5c5c" 
     android:textStyle="normal|bold" /> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="3dp" 
     android:layout_marginLeft="3dp" 
     android:layout_marginRight="3dp" 
     android:layout_marginTop="3dp" 
     android:weightSum="100"> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="25" 
      android:text="Serial" 
      android:textAlignment="center" 
      android:textColor="@color/text" 
      android:textSize="14sp" 
      android:textStyle="normal|bold" /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginRight="5dp" 
      android:layout_weight="25" 
      android:text="Credit(s)" 
      android:textAlignment="center" 
      android:textColor="@color/text" 
      android:textStyle="normal|bold" /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginRight="13dp" 
      android:layout_weight="25" 
      android:text="GPA" 
      android:textAlignment="center" 
      android:textColor="@color/text" 
      android:textStyle="normal|bold" /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginRight="5dp" 
      android:layout_weight="25" 
      android:text="Total" 
      android:textAlignment="center" 
      android:textColor="@color/text" 
      android:textStyle="normal|bold" /> 
    </LinearLayout> 

    <ListView 
     android:id="@+id/listview" 
     android:layout_width="match_parent" 
     android:layout_height="388dp" 
     android:layout_weight="3.58" 
     android:choiceMode="multipleChoice" 
     android:paddingTop="3dp"> 


    </ListView> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:weightSum="9"> 

     <Button 
      android:id="@+id/openData" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="3" 
      android:onClick="openData" 
      android:text="Open" /> 

     <Button 
      android:id="@+id/saveData" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="3" 
      android:onClick="saveData" 
      android:text="Save" /> 

     <Button 
      android:id="@+id/clearData" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="3" 
      android:onClick="clearData" 
      android:text="Clear" /> 

    </LinearLayout> 


</LinearLayout> 

は、ここに私のactivity_main.xmlコードですAndroid: How do I prevent the soft keyboard from pushing my view up?

しかし、それはまだ同じです。

答えて

0

削除アンドロイド:信頼できるAPIはありません、あなたのxmlから=「true」をfitsSystemWindowsまたは「false」に

+0

ここからxml ?? – p32929

0

に変更し、この質問は、多くのことを尋ねてきた、多くの答えが、..

がありますキーボードがいつ表示されるかを検出します。このサイトには「解決策」が表示されますが、偽陽性と陰性があります。しかし、それはsoftInputModeadjustPanに設定するのが最善のようです。これにより、カーソルがキーボードの上に見えるようにするのに必要な最小限の量だけ、OSが画面全体をスクロールさせます。 (キーボードの上にあるアプリ全体は、adjustResizeモードのためです)。

関連主題のlatest bounty question


から@Gabe Sechanを引用しかし、まだ時々私は代替の方法の下に使用します。キーボードが起動したら、あなたが表示する必要はありませんビューの可視性を変更することができます - あなたのOnCreateあなたrootView(あなたのXMLで親ビュー)を初期化し、あなたのOnCreateからごfooterView

呼び出し、この方法では

! キーボードが停止している場合は、キーボードが再び表示されます。

public void testKeyBoardUp(){ 
     rootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { 
      @Override 
      public void onGlobalLayout() { 
       Rect r = new Rect(); 
       rootView.getWindowVisibleDisplayFrame(r); 
       int heightDiff = rel.getRootView().getHeight() - (r.bottom - r.top); 

       if (heightDiff > 100) { // if more than 100 pixels, its probably a keyboard... 
        //ok now we know the keyboard is up... 
        whatEverView.setVisibility(View.INVISIBLE); 


       }else{ 
        //ok now we know the keyboard is down... 
        whatEverView.setVisibility(View.VISIBLE); 


       } 
      } 
     }); 
    } 
+0

@ p32929この回答は役に立ちましたか? –

関連する問題