android 设置不弹出输入法,安卓应用如何在整个应用运行期间都禁止弹出输入法面板?...

在Android中,可以通过在AndroidManifest.xml中设置全局主题,然后在styles.xml中定制AppTheme来影响所有EditText的样式。此外,为了全局禁用软键盘,可以在BaseActivity中设置WindowManager的FLAG_ALT_FOCUSABLE_IM标志,从而避免软键盘弹出。这样做可以确保所有继承自这个基类的Activity都不会显示软键盘。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

你的AndroidManifest.xml中使用的全局主题样式应该是这样的:

android:allowBackup="true"

android:icon="@mipmap/ic_launcher"

android:label="@string/app_name"

android:supportsRtl="true"

android:theme="@style/AppTheme">//使用的是AppTheme主题样式

那么你需要做的是,在 AppTheme中设置 EditText样式,完整的styles.xml如下:

@color/colorPrimary

@color/colorPrimaryDark

@color/colorAccent

@style/NoFocusableEditText

false//没有焦点就不会弹出了

这样整个 App的EditText都设置好了.

/-----------------------由于题主补充了根据题的描述,我更新了如下答案------------------------/

在你的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");

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值