Flutter’da Ekran Yönü Kilitleme

Bu makale, Flutter’da setPreferredOrientations metodu kulanarak ekran yönünün nasıl kilitleneceğini anlatır.

Mobil uygulama hazırlarken bazen cihaz yan çevrilince uygulamamızın ekran görüntüsünün sabit kalmasını isteriz. Kullanıcı ekranı yatay ya da dikey kullanımlarında bizim uygulamamız sabit kalmalı ise aşağıdaki kodlar işimizi görecektir.

Öncelikle services.dart kütüphanesini ekliyoruz.

import 'package:flutter/services.dart';

SystemChrome.setPreferredOrientations metodu ile uygulama arabiriminin görüntüleyebileceği yönler kümesini belirtiriz. portraitUp ve portraitDown kullanarak uygulamamızın cihazın dikey konumda olduğu gibi görüntülenmesini yatay konuma geçince otomatik olarak uygulamamızın görüntüsünün değişmemesini sağlıyoruz.

SystemChrome.setPreferredOrientations([
  DeviceOrientation.portraitUp,
  DeviceOrientation.portraitDown,
]);

Yönler kümesi içinde kullanılabilecek olan yönler:

landscapeLeft
landscapeRight 
portraitDown 
portraitUp

Gelelim bu kodları nerede kullanacağımıza:

Widget build edilirken kullanılabilir

@override
  Widget build(BuildContext context) {
    if (Platform.isAndroid)
      SystemChrome.setPreferredOrientations([
        DeviceOrientation.portraitUp,
        DeviceOrientation.portraitDown,
      ]);
......

Ya da Widget yüklenirken aktif etmek istersek, initState içinde çalıştırabiliriz

@override
void initState(){
  super.initState();
  SystemChrome.setPreferredOrientations([
DeviceOrientation.portraitUp,
    DeviceOrientation.portraitDown,
  ]);
}

Bu özelliği aktif hale getirdikten sonra uygulamamızın diğer ekranlarında pasif hale getirmek istersek, dispose olayına

@override
dispose(){
  SystemChrome.setPreferredOrientations([
    DeviceOrientation.landscapeRight,
    DeviceOrientation.landscapeLeft,
    DeviceOrientation.portraitUp,
    DeviceOrientation.portraitDown,
  ]);
  super.dispose();
}

yazmamız yeterli.

setPreferredOrientations metodu doküman sayfası için tıklayınız.

Görüşmek üzere…

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir