当键盘可见时,EditText下方的按钮不可见
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当键盘可见时,EditText下方的按钮不可见相关的知识,希望对你有一定的参考价值。
我有一个表单和一个按钮,当键盘可见时应该可见,但我不知道怎么办不管那个状态。
- 在我的活动中表现出来:
android:label="@string/app_name" android:windowSoftInputMode="adjustResize" android:screenOrientation="portrait" android:configChanges="orientation"
- xml文件看起来像这样。
<com.myapp.components.NonInvasiveScrollView android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#FFFFFF" android:fillViewport="true"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:scrollbars="none" android:fadingEdgeLength="0dp" android:paddingBottom="10dp" android:orientation="vertical" > <HorizontalScrollView android:id="@+id/hor_scrollview" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:fadingEdgeLength="0dp" android:scrollbars="none" android:overScrollMode="never" android:paddingTop="15dp" > <ImageView android:id="@+id/vizual" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/vizual" /> </HorizontalScrollView> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:layout_marginBottom="5dp" > <RadioGroup android:id="@+id/add_tabs" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/add_fragment_margin" android:layout_marginRight="@dimen/add_fragment_margin" android:orientation="horizontal" android:weightSum="2" > <com.funtasty.appool.components.SegmentedControlButton android:id="@+id/mam_napad" android:layout_width="0dp" android:layout_weight="1" android:checked="true" android:text="Mám nápad na aplikaci" android:singleLine="true" android:textSize="@dimen/smallText" /> <com.myapp.components.SegmentedControlButton android:id="@+id/umim_tvorit" android:layout_width="0dp" android:layout_weight="1" android:checked="false" android:singleLine="true" android:text="Umím tvořit aplikace" android:textSize="@dimen/smallText" /> </RadioGroup> <ViewFlipper android:id="@+id/viewFlipper" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/add_tabs" android:layout_marginLeft="@dimen/add_fragment_margin" android:layout_marginRight="@dimen/add_fragment_margin" android:layout_marginTop="5dp" > <LinearLayout android:id="@+id/add_mam_napad" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <TableRow android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="@dimen/rowMarginTop" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical|left" android:focusable="true" android:src="@drawable/ico_name" /> <EditText android:id="@+id/name" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Jméno a příjmení" android:singleLine="true" android:inputType="text" android:paddingBottom="5dp" android:paddingLeft="10dp" android:layout_marginLeft="2dp" android:layout_marginRight="2dp" android:background="@drawable/edittext" android:focusable="true" android:textSize="@dimen/bigText" android:textColor="@color/gray" android:maxLines="1" /> </TableRow> <TableRow android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="@dimen/rowMarginTop" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginRight="2dp" android:src="@drawable/ico_mail" /> <EditText android:id="@+id/email" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="0" android:hint="E-mail" android:inputType="textEmailAddress" android:background="@drawable/edittext" android:paddingBottom="5dp" android:paddingLeft="10dp" android:layout_marginLeft="2dp" android:layout_marginRight="2dp" android:textColor="@color/gray" android:textSize="@dimen/bigText" android:focusable="true" android:maxLines="1" /> </TableRow> <TableRow android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="@dimen/rowMarginTop" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginRight="2dp" android:src="@drawable/ico_bulb" /> <EditText android:id="@+id/message" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="0" android:background="@drawable/edittext" android:paddingLeft="10dp" android:layout_marginLeft="2dp" android:layout_marginRight="2dp" android:gravity="center_vertical" android:textSize="@dimen/bigText" android:textColor="@color/gray" android:inputType="textMultiLine|textImeMultiLine" android:maxLines="10" android:focusable="true" android:imeOptions="actionDone" android:hint="Popiš svůj nápad" /> </TableRow> </LinearLayout> <LinearLayout android:id="@+id/add_umim_tvorit" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <TableRow android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="@dimen/rowMarginTop" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical|left" android:src="@drawable/ico_name" /> <EditText android:id="@+id/name_umim_tvorit" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="0" android:hint="Jméno a příjmení" android:singleLine="true" android:textIsSelectable="true" android:inputType="text" android:paddingBottom="5dp" android:background="@drawable/edittext" android:paddingLeft="10dp" android:focusable="true" android:layout_marginLeft="2dp" android:layout_marginRight="2dp" android:textColor="@color/gray" android:textSize="@dimen/bigText" android:maxLines="1" /> </TableRow> <TableRow android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="@dimen/rowMarginTop" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="2dp" android:layout_gravity="center_vertical" android:src="@drawable/ico_mail" /> <EditText android:id="@+id/email_umim_tvorit" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="0" android:hint="E-mail" android:inputType="textEmailAddress" android:paddingBottom="5dp" android:background="@drawable/edittext" android:paddingLeft="10dp" android:layout_marginLeft="2dp" android:layout_marginRight="2dp" android:textColor="@color/gray" android:textSize="@dimen/bigText" android:focusable="true" android:maxLines="1" /> </TableRow> <TableRow android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="@dimen/rowMarginTop" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="2dp" android:layout_gravity="center_vertical" android:src="@drawable/ico_bulb" /> <EditText android:id="@+id/message_umim_tvorit" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="0" android:background="@drawable/edittext" android:paddingLeft="10dp" android:layout_marginLeft="2dp" android:layout_marginRight="2dp" android:textSize="@dimen/bigText" android:textColor="@color/gray" android:focusable="true" android:inputType="textMultiLine" android:hint="Napiš něco o sobě" /> </TableRow> </LinearLayout> </ViewFlipper> <Button android:id="@+id/button_odeslat" android:layout_width="match_parent" android:layout_height="48dp" android:layout_below="@id/viewFlipper" android:layout_centerHorizontal="true" android:gravity="center" android:layout_marginLeft="@dimen/add_fragment_margin" android:layout_marginRight="@dimen/add_fragment_margin" android:background="@drawable/bg" android:text="Odeslat" android:textColor="@drawable/button_color" android:focusable="true" android:focusableInTouchMode="true" android:enabled="false" android:layout_marginTop="10dp" android:textStyle="bold" /> </RelativeLayout> </LinearLayout> </com.myapp.components.NonInvasiveScrollView>
我不明白为什么softInputMode
不起作用:/我只是希望键盘上方的edittexts可以看到按钮。
答案
在清单中,对于此活动,将windowSoftInputMode更改为:
android:windowSoftInputMode="adjustPan"
这将导致布局在显示键盘时向上移动,使按钮可见。
另一答案
将整个布局包裹在一个而不是仅用于图像。这将确保您可以在键盘后面的按钮不可见时滚动。
另一答案
你可以试试这个:
boolean checkKeyboard = false;
final android.view.ViewGroup.LayoutParams cur_params = linearScroll.getLayoutParams(); //current layout params
final View activityRootView = findViewById(R.id.activity_image_layout);
activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Rect r = new Rect();
activityRootView.getWindowVisibleDisplayFrame(r);
int heightDiff = activityRootView.getRootView().getHeight() - (r.bottom - r.top);
int margin = activityRootView.getRootView().getHeight()-heightDiff;
// screen height without keyboard layout
if (heightDiff > 100) {
if(!checkKeyboard){
// set new layout params ...new
LayoutParams(LayoutParams.FILL_PARENT, margin);
checkKeyboard = true;
}
} else {
// set first layout params cur_params
layout.setLayoutParams(cur_params);
checkKeyboard = false;
}
}
});
另一答案
在Button
->
android:layout_alignParentBottom="true"
中使用它固定你的按钮位置然后滚动视图并显示你的按钮..
它可能会帮助你......
以上是关于当键盘可见时,EditText下方的按钮不可见的主要内容,如果未能解决你的问题,请参考以下文章