我有一个表单和一个按钮,当键盘可见时,应该可以看到,但我无法管理该状态。
在我的活动中显示:
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显示按钮。
答案 0 :(得分:4)
在您的清单中,对于此活动,将windowSoftInputMode更改为:
android:windowSoftInputMode="adjustPan"
这将导致布局在显示键盘时向上移动,使按钮可见。
答案 1 :(得分:0)
你可以试试这个:
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;
}
}
});
答案 2 :(得分:0)
将整个布局包裹在一个而不是仅用于图像。这将确保您可以在键盘后面的按钮不可见时滚动。
答案 3 :(得分:0)
在Button
->
android:layout_alignParentBottom="true"
中使用它固定了按钮的位置,然后滚动视图并显示按钮。
可能对您有帮助...