windowSoftInputMethod我是知道的,也都试了下,没有解决,windowSoftInputMethod的结果好像是跟页面具体的布局有挺大关系的,我想解决的大概是这么2个问题,1.能不能使得输入法显示在任意你想要的位置,2.如果1无法实现,能不能使得输入法显示在整个页面的底部(整个页面上移)。
走同样的路,发现不同的人生
我的想法:使用ScrollView將中間的主體內容包住,再把ScrollView的捲軸去掉。 效果和版面程式碼如下:註:我目前測試的,只有Android4.4的機器上下面的版面還是不能上移,不知道原因希望共同探討。
更新答案:4.4的bug解決,說起來也是自己作死為了適配4.4 的狀態欄顏色,特意在stylev19中加了一行:true
就是這一行程式碼導致4.4上無效,目前原因不明。 提醒下,最好還是在清單文件中 加上
android:windowSoftInputMode="adjustResize"
我為了下面的『下一步』按鈕能夠永遠顯示在底部,用一個linearlayout 的android:layout_weight=1做了一個巢狀。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="bottom" android:orientation="vertical" tools:context="com.luckingus.sns.ui.account.InviteActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"> <ScrollView android:id="@+id/scrollView" android:layout_width="match_parent" android:layout_height="wrap_content" android:fadeScrollbars="false"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <RelativeLayout android:layout_width="match_parent" android:layout_height="226dp" android:background="@color/colorPrimary"> <TextView android:id="@+id/textView2" android:layout_width="match_parent" android:layout_height="68dp" android:layout_alignParentBottom="true" android:background="@color/colorPrimaryDark" android:gravity="center_vertical" android:paddingLeft="32dp" android:text="验证邀请码" android:textColor="@color/md_white" android:textSize="@dimen/textSize_24sp" /> <ImageView android:layout_width="65dp" android:layout_height="64dp" android:layout_alignBottom="@+id/textView2" android:layout_alignParentEnd="true" android:layout_alignParentRight="true" android:layout_marginBottom="52dp" android:layout_marginEnd="36dp" android:layout_marginRight="36dp" android:src="@drawable/logo" /> </RelativeLayout> <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:foreground="@drawable/bottom_shadow"> <android.support.design.widget.TextInputLayout android:id="@+id/til_invite" android:layout_width="match_parent" android:layout_height="@dimen/text_input_layout_heigh" android:layout_marginLeft="32dp" android:layout_marginRight="32dp" android:layout_marginTop="@dimen/dp20"> <EditText android:id="@+id/et_invite" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:hint="@string/input_invite" /> </android.support.design.widget.TextInputLayout> </FrameLayout> </LinearLayout> </ScrollView> </LinearLayout> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/background_dock" android:orientation="horizontal"> <TextView android:id="@+id/tv_next" style="@style/TextButtonRegister" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentEnd="true" android:layout_alignParentRight="true" android:drawableRight="@drawable/ic_chevron_right_grey600_24dp" android:text="@string/next_step" /> <TextView android:id="@+id/tv_last" style="@style/TextButtonRegister" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:drawableLeft="@drawable/ic_chevron_left_grey600_24dp" /> </RelativeLayout> </LinearLayout>
方法一:在你的activity中的oncreate中setContentView之前寫上這個程式碼getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);方法二:在專案的AndroidManifest.xml檔案中對應的裡加入android:windowSoftInputMode="stateVisible|adjustResize",這會讓螢幕整體上移。如果加上的是 android:windowSoftInputMode="adjustPan"這樣鍵盤就會覆蓋螢幕。 方法三:把頂層的layout換成ScrollView,或是說在頂層的Layout上面再加一層ScrollView的封裝。這樣就會把軟鍵盤和輸入框一起滾動了,軟鍵盤就會一直處於底部。
看看用iscroll可不可以實現
我的想法:使用ScrollView將中間的主體內容包住,再把ScrollView的捲軸去掉。
效果和版面程式碼如下:
註:我目前測試的,只有Android4.4的機器上下面的版面還是不能上移,不知道原因希望共同探討。
更新答案:4.4的bug解決,說起來也是自己作死為了適配4.4 的狀態欄顏色,特意在stylev19中加了一行:- true
就是這一行程式碼導致4.4上無效,目前原因不明。
提醒下,最好還是在清單文件中 加上
我為了下面的『下一步』按鈕能夠永遠顯示在底部,用一個linearlayout 的android:layout_weight=1做了一個巢狀。
方法一:在你的activity中的oncreate中setContentView之前寫上這個程式碼getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);裡加入android:windowSoftInputMode="stateVisible|adjustResize",這會讓螢幕整體上移。如果加上的是 android:windowSoftInputMode="adjustPan"這樣鍵盤就會覆蓋螢幕。
方法二:在專案的AndroidManifest.xml檔案中對應的
方法三:把頂層的layout換成ScrollView,或是說在頂層的Layout上面再加一層ScrollView的封裝。這樣就會把軟鍵盤和輸入框一起滾動了,軟鍵盤就會一直處於底部。
看看用iscroll可不可以實現