当键盘可见时,EditText下面的按钮不可见
我有一个窗体和下面的按钮,当键盘可见时应该可见,但我无法管理该状态。 我知道我的XML文件有点凌乱:)
在活动的清单中,我有:
android:label =“@ string / app_name”android:windowSoftInputMode =“adjustResize”android:screenOrientation =“portrait”android:configChanges =“orientation”
该XML文件看起来像这样。 我有问题在这里粘贴XML文件,所以我很抱歉有关混乱
  com.myapp.components.NonInvasiveScrollView 
  android:layout_width =“match_parent”android:layout_height =“wrap_content”android:background =“#FFFFFF” 
  机器人:fillViewport = “真” 
  LinearLayout android:layout_width =“match_parent”android:layout_height =“wrap_content”android:scrollbars =“none”android:fadingEdgeLength =“0dp” 
  机器人: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>
我不明白为什么softInputMode不起作用:/我只是希望按钮在键盘上方的edittext上可见。 谢谢
在您的清单中,对于此活动,将windowSoftInputMode更改为:
android:windowSoftInputMode="adjustPan"
这会导致布局在显示键盘时向上移动,使按钮可见。
布尔值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;
                }
         }
    });
将整个布局包裹起来,而不是仅使用图像。 当按钮在键盘后面不可见时,这将确保您可以滚动。
链接地址: http://www.djcxy.com/p/24259.html上一篇: Button below EditText is not visible when keyboard is visible
