当我的软键盘向上滑动时,如何隐藏带有id:btmFillFormLayout的LinearLayout? 使用软键盘我的线性布局也滑动了3张图片,但我无法点击它们。我需要隐藏它们。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/btmFillFormLayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="3dp"
android:layout_marginTop="10dp"
android:gravity="center"
android:isScrollContainer="false" >
<Button
android:id="@+id/btn_FillData"
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_marginRight="10dp"
android:background="@drawable/save" />
<Button
android:id="@+id/btn_pickNewForm"
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:background="@drawable/newicon" />
<Button
android:id="@+id/btn_DeleteData"
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_marginLeft="10dp"
android:background="@drawable/delete" />
</LinearLayout>
<LinearLayout
android:id="@+id/topFillFormLayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerVertical="true"
android:layout_marginBottom="3dp"
android:layout_marginTop="10dp"
android:orientation="horizontal" >
<Button
android:id="@+id/btn_ChangeDate"
android:layout_width="96dp"
android:layout_height="38dp"
android:layout_marginLeft="10dp"
android:text="@string/change_date" />
</LinearLayout>
<EditText
android:id="@+id/editTextToShowDate"
android:layout_width="0dp"
android:layout_height="0dp"
android:focusable="false"
android:inputType="date"
android:onClick="showDatePickerDialog" >
</EditText>
<EditText
android:id="@+id/body"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/btmFillFormLayout"
android:layout_alignParentLeft="true"
android:layout_below="@+id/title"
android:ems="10"
android:fadingEdge="vertical"
android:gravity="top"
android:hint="Description"
android:padding="5dp"
android:scrollbars="vertical"
android:textSize="22sp" >
<requestFocus />
</EditText>
<TextView
android:id="@+id/tvDate"
android:layout_width="92dp"
android:layout_height="33dp"
android:layout_alignParentLeft="true"
android:layout_below="@+id/topFillFormLayout"
android:layout_marginLeft="14dp"
android:gravity="center"
android:text="@string/empty"
android:visibility="visible" />
<TextView
android:id="@+id/tvDiagnoze"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/tvDate"
android:layout_alignTop="@+id/tvDate"
android:layout_marginLeft="10dp"
android:layout_toRightOf="@+id/tvDate"
android:gravity="center"
android:text="@string/empty"
android:visibility="invisible" />
<TextView
android:id="@+id/tvVirsutinis"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/tvDiagnoze"
android:layout_alignRight="@+id/title"
android:layout_alignTop="@+id/tvDiagnoze"
android:layout_marginLeft="10dp"
android:gravity="center"
android:text="@string/virsutinis"
android:visibility="invisible" />
<EditText
android:id="@+id/virsutinisKraujoSpaudimas"
android:layout_width="55dp"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/tvVirsutinis"
android:layout_marginLeft="10dp"
android:layout_toRightOf="@+id/title"
android:gravity="center"
android:hint="@string/tritaskis"
android:inputType="number"
android:maxLength="3"
android:singleLine="true"
android:visibility="invisible" />
<EditText
android:id="@+id/apatinisKraujoSpaudimas"
android:layout_width="55dp"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/virsutinisKraujoSpaudimas"
android:layout_alignTop="@+id/tvApatinis"
android:ems="10"
android:gravity="center"
android:hint="@string/tritaskis"
android:inputType="number"
android:maxLength="3"
android:singleLine="true"
android:visibility="invisible" />
<TextView
android:id="@+id/tvApatinis"
android:layout_width="wrap_content"
android:layout_height="36dp"
android:layout_alignLeft="@+id/tvVirsutinis"
android:layout_below="@+id/virsutinisKraujoSpaudimas"
android:layout_toLeftOf="@+id/virsutinisKraujoSpaudimas"
android:gravity="center"
android:text="@string/apatinis"
android:visibility="invisible" />
<EditText
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/apatinisKraujoSpaudimas"
android:ems="10"
android:hint="@string/no_title"
android:maxLength="50"
android:singleLine="true"
android:textSize="18sp" />
<com.bakalauras.rtaujenis.NoDefaultSpinner
android:id="@+id/spinner_diagnose"
android:layout_width="170dp"
android:layout_height="match_parent"
android:layout_alignBottom="@+id/topFillFormLayout"
android:layout_alignLeft="@+id/tvDiagnoze"
android:layout_alignTop="@+id/topFillFormLayout"
android:entries="@array/spin_select_diagnose"
android:prompt="@string/select_diagnose" />
<TextView
android:id="@+id/tvTemperatura"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/apatinisKraujoSpaudimas"
android:layout_alignLeft="@+id/tvDiagnoze"
android:layout_alignTop="@+id/tvVirsutinis"
android:gravity="center"
android:text="@string/temperatura"
android:visibility="invisible" />
<EditText
android:id="@+id/temperatura"
android:layout_width="85dp"
android:layout_height="wrap_content"
android:layout_above="@+id/apatinisKraujoSpaudimas"
android:layout_marginLeft="10dp"
android:layout_toRightOf="@+id/tvTemperatura"
android:gravity="center"
android:hint="@string/tritaskis"
android:inputType="numberDecimal"
android:maxLength="5"
android:singleLine="true"
android:visibility="invisible" />
<TextView
android:id="@+id/tvDiabet"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/apatinisKraujoSpaudimas"
android:layout_alignLeft="@+id/tvDiagnoze"
android:layout_alignTop="@+id/tvVirsutinis"
android:gravity="center"
android:text="@string/diabetas"
android:visibility="invisible" />
<EditText
android:id="@+id/diabet"
android:layout_width="85dp"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/tvDiagnoze"
android:layout_alignBottom="@+id/tvDiagnoze"
android:layout_marginLeft="10dp"
android:layout_toRightOf="@+id/tvDiabet"
android:gravity="center"
android:hint="@string/tritaskis"
android:inputType="numberDecimal"
android:maxLength="5"
android:singleLine="true"
android:visibility="invisible" />
<TextView
android:id="@+id/tvWeight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/apatinisKraujoSpaudimas"
android:layout_alignLeft="@+id/tvDiagnoze"
android:layout_alignTop="@+id/tvVirsutinis"
android:gravity="center"
android:text="@string/svoris"
android:visibility="invisible" />
<EditText
android:id="@+id/weight"
android:layout_width="85dp"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/diabet"
android:layout_alignBottom="@+id/diabet"
android:layout_marginLeft="10dp"
android:layout_toRightOf="@+id/tvWeight"
android:gravity="center"
android:hint="@string/tritaskis"
android:inputType="numberDecimal"
android:maxLength="7"
android:singleLine="true"
android:visibility="invisible" />
</RelativeLayout>
我的问题有两张图片。 [1]:http://imgur.com/4fPOUEE [2]:http://imgur.com/JSjvHR5
答案 0 :(得分:1)
根据此answer,您可以执行以下操作:
private boolean mIsKeyboardHidden;
@Override
public void onCreate(Bundle savedInstanceState) {
// Your stuff first
final View activityRootView = findViewById(android.R.id.content);
activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
final int heightDiff = activityRootView.getRootView().getHeight() - activityRootView.getHeight();
if (heightDiff > 100) { // if more than 100 pixels, its probably a keyboard...
mIsKeyboardHidden = !mIsKeyboardHidden;
}
if (mIsKeyboardHidden) {
layout.setVisibility(View.VISIBLE);
} else {
layout.setVisibility(View.INVISIBLE);
}
}
});
}