操作栏隐藏且不回来

Posted

技术标签:

【中文标题】操作栏隐藏且不回来【英文标题】:actionbar is hiding and not coming back 【发布时间】:2018-08-31 22:04:23 【问题描述】:

在我的 android 项目中,操作栏隐藏了,我无法使用侧抽屉中的菜单。我正在使用片段。只有当我尝试在 DECODE fragment 选项卡的密码字段中输入密码时才会发生这种情况。但在 ENCODE 片段 中,这并没有发生并且工作良好。实际上,ActionBar 正在上升,但是当键盘隐藏时,它不会下降。这是我的解码片段

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:orientation="vertical"
android:layout_
android:layout_
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">

 <FrameLayout
    android:layout_
    android:layout_
    android:layout_marginTop="@dimen/load_image_layout_margin_top"
    android:background="@drawable/layout_border">

    <ImageView
        android:id="@+id/loadDecodeImage"
        android:layout_
        android:layout_
        android:gravity="center"
        android:paddingTop="2sp"
        android:contentDescription="@string/description_upload_image"
        android:adjustViewBounds ="true"
        android:scaleType="centerCrop" />

    <TextView
        android:id="@+id/imageTextDecodeMessage"
        android:layout_
        android:layout_
        android:layout_gravity="bottom|center"
        android:drawableStart="@drawable/ic_open_image"
        android:gravity="center"
        android:text="@string/description_upload_image"
        android:textAllCaps="true"
        android:textColor="@color/colorPrimary"
        android:textSize="@dimen/text_load_image_size" />
 </FrameLayout>

 <android.support.design.widget.TextInputLayout
    android:id="@+id/decodePasswordLayout"
    android:layout_
    android:layout_
    android:layout_marginLeft="12sp"
    android:layout_marginRight="12sp"
    android:layout_marginTop="12sp"
    app:passwordToggleEnabled="true">

    <android.support.design.widget.TextInputEditText
        android:textColor="@color/colorPrimaryDark"
        android:id="@+id/passwordToDecode"
        android:layout_
        android:layout_
        android:hint="@string/password_to_decode_hint"
        android:maxLength="16"
        android:inputType="textPassword"/>
 </android.support.design.widget.TextInputLayout>

 <LinearLayout android:layout_
    android:orientation="vertical"
    android:layout_
    android:layout_weight="1.0">

    <Button
        android:id="@+id/decodeButton"
        android:layout_
        android:layout_
        android:layout_marginTop="8sp"
        android:layout_marginBottom="10sp"
        android:layout_marginLeft="12sp"
        android:layout_marginRight="12sp"
        android:background="@drawable/button_background"
        android:text="@string/decode"
        android:textColor="@color/colorButtonText"
        android:textSize="@dimen/button_text_size" />

 </LinearLayout>

</LinearLayout>

这是 AndroidManifest.xml 文件:

 <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.stegano.strenggeheim">

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature
    android:name="android.hardware.camera.any"
    android:required="true" />
<uses-feature
    android:name="android.hardware.camera.autofocus"
    android:required="false" />

  <application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:largeHeap="true"
    android:theme="@style/MyMaterialTheme">
    <activity
        android:name=".activity.MainActivity"
        android:screenOrientation="portrait"
        android:windowSoftInputMode="adjustResize"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".activity.AboutUsActivity"
        android:screenOrientation="portrait"
        android:label="@string/title_activity_about_us"
        android:theme="@style/Theme.AppCompat.Light.DarkActionBar"
        android:parentActivityName=".activity.MainActivity" >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value=".activity.MainActivity"
            />
    </activity>
    <activity
        android:name=".activity.TextDialogActivity"
        android:screenOrientation="portrait"
        android:theme="@style/Theme.AppCompat.Dialog"
        android:label="Secret Message">
    </activity>
    <activity
        android:name=".activity.SettingsActivity"
        android:screenOrientation="portrait"
        android:label="Settings"
        android:theme="@style/Theme.AppCompat.Light.DarkActionBar"
        android:parentActivityName=".activity.MainActivity">
    </activity>
    <provider
        android:name="android.support.v4.content.FileProvider"
        android:authorities="$applicationId.provider"
        android:exported="false"
        android:grantUriPermissions="true">
        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/provider_paths"/>
    </provider>
  </application>

 </manifest>

这是我项目的截图:

【问题讨论】:

【参考方案1】:

在您的 AndroidManifest.xml 中为您的 DrawerActivity 删除 adjustPan,使用 adjustResize

替换这个

android:windowSoftInputMode="adjustPan"

用这个

android:windowSoftInputMode="adjustResize"

它一定会对你有所帮助。

【讨论】:

我没有在我的 AndroidManifest.xml 中使用android:windowSoftInputMode="adjustPan",但我仍然在使用抽屉的活动中尝试了android:windowSoftInputMode="adjustResize"。现在编码片段中的操作栏也隐藏了,这是以前没有发生的。 我的意思是说你注册的Activity在清单文件中有Left Drawer,在那里你可以使用这个标签android:windowSoftInputMode="adjustResize" 是的,我也这样做了。我在我的 MainActivity 中使用了 Left Drawer,并在那里添加了这个 android:windowSoftInputMode="adjustResize"。我正在用我的 AndroidManifest.xml 更新我的问题。

以上是关于操作栏隐藏且不回来的主要内容,如果未能解决你的问题,请参考以下文章

搜狗拼音输入法皮肤被隐藏了怎么弄回来

为没有 PowerBi 帐户且不允许共享回来的用户共享仪表板和报告的方法

打开搜索栏时导航栏隐藏

导航栏颜色不会变回来? IOS 7

WebView 选择导致软键盘暂时隐藏然后回来

TabBar 隐藏起来,无论我怎么问都不想回来......