addSpecificOrientationListener на Android - PullRequest
0 голосов
/ 09 мая 2018

В приложении React Native я использую реагировать-нативную ориентацию для прослушивания изменений ориентации. Если в пейзаже, я хочу различать ландшафт-правый и ландшафт-левый, поэтому я использую addSpecificOrientationListener вместо addOrientationListener. Но, похоже, он не работает на устройстве Android.

Есть идеи, как получить конкретную ориентацию устройства в Android, используя React Native?

1 Ответ

0 голосов
/ 09 мая 2018

Я хотел бы убедиться, что вы добавили атрибут configChanges к вашему <activity> в вашем AndroidManifest.xml, и убедитесь, что одно из указанных вами значений - "ориентация".

<activity
      android:name=".MainActivity"
      android:label="@string/app_name"
      android:windowSoftInputMode="adjustPan"
      android:launchMode="singleTop"
      android:resizeableActivity="false"
      android:configChanges="keyboard|keyboardHidden|orientation|screenSize">

      ...

</activity>

Это позволяет вам переопределить метод onConfigurationChanged() в MainActivity.java, как показано в README реакции-нативной ориентации:

import android.content.Intent; // <--- import
    import android.content.res.Configuration; // <--- import

    public class MainActivity extends ReactActivity {
      ......
      @Override
      public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        Intent intent = new Intent("onConfigurationChanged");
        intent.putExtra("newConfig", newConfig);
        this.sendBroadcast(intent);
    }

      ......

    }
...