在android studio中编辑文本(soft\u input\u adjust\u pan/soft\u input\u adjust\u resize)

jtw3ybtb  于 2021-06-30  发布在  Java
关注(0)|答案(2)|浏览(370)


第一张图片是软输入调整大小。屏幕不会上升,但edittext不可见。
第二张图片用于软输入、调整和平移。编辑文本可见,但屏幕被切断并升高。
如何使屏幕不被剪切并且编辑文本可见?

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_chat);

    WindowManager.LayoutParams  layoutParams = new WindowManager.LayoutParams();
    layoutParams.flags  = WindowManager.LayoutParams.FLAG_DIM_BEHIND;
    layoutParams.dimAmount  = 0.5f;
    getWindow().setAttributes(layoutParams);

    Display display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
    int width = (int) (display.getWidth() * 0.85);
    int height = (int) (display.getHeight() * 0.85);
    getWindow().getAttributes().width = width;
    getWindow().getAttributes().height = height;

    getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);//or resize
4si2a6ki

4si2a6ki1#

请问你们有全屏风格的吗?比如:

<style name="AppTheme" 
parent="ThemeOverlay.MaterialComponents.MaterialCalendar.Fullscreen">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorMidBlue</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:windowFullscreen">false</item>
</style>

或者你在任何地方全屏显示你的活动?
从代码中删除全屏将解决您的问题。

xhv8bpkk

xhv8bpkk2#

您可以将此行添加到androidmanifest.xml

android:windowSoftInputMode="adjustPan|adjustResize"


您还可以在java文件中以编程方式添加它,如下所示

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


你也可以通过使用垂直滚动视图中的设计布局来管理这些东西,这样一旦用户点击编辑文本,页面的内容就会垂直滚动,你就可以看到整个页面。

相关问题