操作栏隐藏且不回来
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 更新我的问题。以上是关于操作栏隐藏且不回来的主要内容,如果未能解决你的问题,请参考以下文章