به نام خدا
سلام دوستان در این بخش از آموزش میخام تشخیص چرخش صفحه را
با هم کار کنیم یعنی با چرخش دستگاه برنامه ابتدا متوجه چرخش بشود و
اعمالی که قراره با چرخشانجام بشوند شروع به فعالیت کنند همانطور که
می دونید این خاصیت در بیشترمواقع یک قدرت خاصی به برنامه شما میده
زیرا بعضی وقتا واقعا کاربر نیازداره که به یک فضای بیشتری دسترسی داشته
باشه یا اینکه میخاد صفحه کلید گسترده تری رو داشته باشه که بتونه راحت تر تایپ کنه
و همه ی اینها رو ما میتونیم با چرخش صفحه انجام بدیم
قدم اول
من ابتدا درون Layout.xml مورد نظر میام و یک TextView ایجاد می کنم
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:gravity="center"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="HamyarAndroid.com"
android:textSize="30sp"
android:textColor="#4BB84F"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/text"
android:textSize="30sp"
android:textColor="#112566"/>
</LinearLayout>
قدم دوم
نوشتن کدهای جاوا در کلاس مورد نظر
MainActivity.java
package com.hamyarandroid.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.content.res.Configuration;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
TextView textview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textview = findViewById(R.id.text);
int orientation = this.getResources().getConfiguration().orientation;
if (orientation == Configuration.ORIENTATION_PORTRAIT) {
textview.setText("Portrait");
} else {
textview.setText("landscape");
}
}
}
خب حالا من میام و کد بالا رو خط به خط توضیح میدم
خط 12
معرفی TextView
خط 19
اتصال TextView به آیدی
خط 21
حالت فعلی صفحه رو از طریق گرفتن configuration به دست میاریم
خط های 22 و 23
اگر حالت صفحه برابر بود با PORTRAIT درون TextView این کلمه را ، ست کن
خط های 24 و 25
در غیر اینصورت یعنی حالت صفحه با PORTRAIT برابر نبود درون TextView کلمه Landscape را نمایش بده
خروجی برنامه را در پایین میتونید ببینید
همانطور که در بالا میبینید برنامه متوجه چرخش شد و کلمه landscape را به نمایش در آورد
من اشاره کردم که تشخیص تغییر صفحه برای این است که برنامه متوجه بشود و یک سری کارها
را برای ما انجام بدهد
خب من در اینجا میخام بعد از چرخش ، نوار ابزار بالای صفحه به حالت مخفی
در بیاد و یک جمله هم برای من به صورت پیغام به نمایش در بیاد
پس درون کدهام دو خط کد اضافه میکنم یکی برای مخفی کردن نوار ابزار یکی برای پیغام
MainActivity.java
package com.hamyarandroid.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.content.res.Configuration;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
TextView textview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textview = findViewById(R.id.text);
int orientation = this.getResources().getConfiguration().orientation;
if (orientation == Configuration.ORIENTATION_PORTRAIT) {
textview.setText("Portrait");
} else {
textview.setText("landscape");
getSupportActionBar().hide();
Toast.makeText(MainActivity.this,"نوار ابزار در این حالت مخفی می شود",Toast.LENGTH_LONG).show();
}
}
}
دو خط کد در بالا اضاخه کردم
خط 27
مخفی کردن نوار ابزار
خط 29
نمایش پیغام یا Toast
تصویر خروجی جدید را میتونید در پایین ببینید
همانطور که در تصویر بالا می بینید نوار ابزار مخفی شده و یک پیغام برامون نمایش داده دشده
دوستان امیدوارم این آموزش مورد توجه شما قرار گرفته باشه
موفق و پیروز باشد