1. 程式人生 > >安卓應用如何在整個應用運行期間都禁止彈出輸入法面板?

安卓應用如何在整個應用運行期間都禁止彈出輸入法面板?

params manager protect noi trac star ima 禁用 繼承

在你的Activity的onCreate函數中添加如下代碼即可完全禁用軟鍵盤:

getWindow().setFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM,
                WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);

所以,你想全局生效的話,可以寫一個基類,例如:

public abstract class BaseNoIMActivity extends AppCompatActivity {
    @Override
    protected void
onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().setFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM, WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM); onCreateStarted(savedInstanceState); } protected
abstract void onCreateStarted(@Nullable Bundle savedInstanceState); }

然後任意個Activity都繼承它,如果你的項目已經有基類,那麽把上面的代碼插入到基類中即可,demo示例:

public class TestActivity extends BaseNoIMActivity {//繼承基類

    @Override
    protected void onCreateStarted(@Nullable Bundle savedInstanceState) {
        setContentView(R.layout.activity_test);
        Log.e(
"test","TestActivity is started"); } }

引用自:https://segmentfault.com/q/1010000008489927/a-1020000008490261/revision

安卓應用如何在整個應用運行期間都禁止彈出輸入法面板?