1. ホーム
  2. android

[解決済み] windowSoftInputMode="adjustResize "が半透明のアクション/ナビバーで機能しない。

2022-05-07 15:02:27

質問

新しいアクションバー/ナビゲーションバーの半透明化で問題があります。 Android KitKat (4.4)と windowSoftInputMode="adjustResize" .

通常は 入力モード から adjustResize キーボードが表示されると、アプリが自動的にリサイズされるはずなのですが、ここではリサイズされません。透明効果のための行を削除すると、リサイズは動作します。

つまり、キーボードが表示されている場合、私の ListView がその下にあり、最後の数項目にアクセスできません(手動でキーボードを隠すしかない)。

AndroidManifest.xml :

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="XYZ"
android:versionCode="23"
android:versionName="0.1" >

<uses-sdk
    android:minSdkVersion="9"
    android:targetSdkVersion="19" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/Theme.XYZStyle" >
    <activity
        android:name="XYZ"
        android:label="@string/app_name"
        android:windowSoftInputMode="adjustResize" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

</manifest>

値-v19/styles.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

<style name="Theme.XYZStyle" parent="@style/Theme.AppCompat.Light">
    <item name="android:windowTranslucentStatus">true</item>
    <item name="android:windowTranslucentNavigation">true</item>
</style>

</resources>

フラグメント.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<ListView
    android:id="@+id/listView_contacts"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:clipToPadding="false"
    android:divider="@null"
    android:dividerHeight="0dp"
    android:drawSelectorOnTop="true"
    android:fastScrollAlwaysVisible="true"
    android:fastScrollEnabled="true"
    android:paddingBottom="@dimen/navigationbar__height" >
</ListView>

</RelativeLayout>

これを修正するためのアイデアはありますか?

解決方法は?

以下のプロパティが不足しています。

android:fitsSystemWindows="true"

をルートで RelativeLayout フラグメント .xmlのレイアウトです。

更新しました。

昨年、クリス・ベインによる興味深い講演があり、この仕組みがよく説明されています。

https://www.youtube.com/watch?v=_mGDMVRO3iE