Je veux juste définir des indicateurs lorsque mon orientation est en paysage afin que lorsque l'activité est recréée dans onCreate (), je puisse basculer entre ce qu'il faut charger en portrait et en paysage. J'ai déjà un xml layout-land qui gère ma mise en page.
public void onConfigurationChanged(Configuration _newConfig) {
if (_newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
this.loadURLData = false;
}
if (_newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
this.loadURLData = true;
}
super.onConfigurationChanged(_newConfig);
}
Over-riding onConfigurationChanged empêchera mon fichier XML layout-land de se charger en orientation paysage.
Je veux juste obtenir l'orientation actuelle de mon appareil dans onCreate (). Comment puis-je l'obtenir?
java
android
configuration
orientation
Sheehan Alam
la source
la source
Quand la superclasse
this
estContext
la source
Dans certains appareils, cela
void onConfigurationChanged()
peut planter. L'utilisateur utilisera ce code pour obtenir l'orientation actuelle de l'écran.Et utilise
la source
cela donnera toute l'orientation comme normale et inverse
et le gérer comme
la source
final int angle = (rotation == Surface.ROTATION_90) ? 90 : (rotation == Surface.ROTATION_180) ? 180 : (rotation == Surface.ROTATION_270) ? 270 : 0;
cette commande renvoie la valeur int 1 pour Portrait et 2 pour Paysage
la source
Au cas où quelqu'un voudrait obtenir une description d'orientation significative (comme celle transmise
onConfigurationChanged(..)
avec ceux-cireverseLandscape
,sensorLandscape
etc.), utilisez simplementgetRequestedOrientation()
la source
Dans votre classe d'activités, utilisez la méthode ci-dessous:
Ensuite, pour déclarer que votre activité gère une modification de configuration, modifiez l'élément approprié dans votre fichier manifeste pour inclure l'
android:configChanges
attribut avec une valeur qui représente la configuration que vous souhaitez gérer. Les valeurs possibles sont répertoriées dans la documentation de l'android:configChanges
attribut (les valeurs les plus couramment utilisées sont "orientation" pour empêcher les redémarrages lorsque l'orientation de l'écran change et "keyboardHidden" pour empêcher les redémarrages lorsque la disponibilité du clavier change). Vous pouvez déclarer plusieurs valeurs de configuration dans l'attribut en les séparant par un tube | personnage.C'est tout!!
la source
si vous voulez remplacer cette méthode onConfigurationChanged et que vous voulez toujours qu'elle fasse les choses de base, envisagez d'utiliser super.onConfigyrationChanged () comme première instruction de la méthode overriden.
la source
Je veux juste proposer une autre alternative qui concernera certains d'entre vous:
implique que nous déclarons explicitement la mise en page à injecter.
Au cas où nous souhaiterions conserver l'injection automatique grâce aux dossiers layout-land et layout. Tout ce que vous avez à faire est de l'ajouter à onCreate:
Ici, on affiche ou non la barre d'action en fonction de l'orientation du téléphone
la source