如何在android中显示软键盘时移动layoutFragment?

时间:2014-11-27 14:04:44

标签: android android-layout android-fragments fragment android-softkeyboard

我有这个页面:

enter image description here

但是当打开softWareKeyBoard时,我看不到其他EditText。我该怎么办?

enter image description here

注意:我使用下面的代码但没有用。我的classextends Fragment

getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE|WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

5 个答案:

答案 0 :(得分:2)

有两种方法可以在您的Manifest活动中使用它

它将起作用,调整盘将向上流动表面并打开软键盘



getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);






<activity android:name="XXXActivity" android:windowSoftInputMode="adjustPan">
</activity>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

Use 也可以使用 NestedScrollView 作为父视图。在清单文件中设置 fitsSystemWindows = "false" 并设置 android:windowSoftInputMode="adjustResize"

答案 2 :(得分:0)

工作代码

对于片段:

select id,
       to_char(data_date, 'YYYY-MM') as yyyymm,
       ( sum(GS_PX_AMT) +
         sum(case when yyyymm_seqnum = 1 then prev_amt else 0
             end)
       ) as double_counted_sum
from (select xxx.*,
             lag(GS_PX_AMT) over (partition by id order by data_date) as prev_amt,
             row_number() over (partition by id, to_char(next_data_date, 'YYYY-MM') order data_date) as yyyymm_seqnum
      from xxx
     ) x
group by id, to_char(data_date, 'YYYY-MM');

活动:

getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);

答案 3 :(得分:0)

只需在包含片段的活动的onCreate方法中包含window?.setSoftInputMode( WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE)(这会影响活动中的所有片段)

例如:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    window?.setSoftInputMode(
            WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE
    )
}

答案 4 :(得分:-1)

我用这样的方式以编程方式显示软键盘,这对我起作用,以防止在启动键盘时自动调整屏幕大小。

EditText et =  (EditText))findViewById(R.id.edit_text);  
  Timer timer = new Timer();
            TimerTask task = new TimerTask() {

                @Override
                public void run() {
                    InputMethodManager inputMethodManager=(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
                    inputMethodManager.toggleSoftInputFromWindow(et.getApplicationWindowToken(), InputMethodManager.SHOW_FORCED, 0);

                }
            };
            timer.schedule(task, 200);

在清单文件中使用:

<activity android:name="XXXActivity" android:windowSoftInputMode="adjustPan">
</activity>