دوستان تصمیم گرفتم تاجایی که سوادم اجازه میده و تجربه هایی که داشتم نکاتی رو بگم که به بهبود ساختار و عملکرد برنامه کمک کنه و تاحدی یه دیدی بهتون بده که بهتر و خلاصه انعطاف پذیر تر و.... کد بزنید.
مبحث طراحی UI:
خیلی از دوستان در یک صفحه خودشون چندین ویو و لی اوت های مختلف دارند ،این تعداد در بعضی موارد اینقدر زیاد میشه که شخص بعضی وقتها سردر گم میشه .
در این موارد بهتره از دستور include استفاده کنید،که خیلی دوستان متاسفانه استفاده نمیکنند.
کد زیر رو ببینید
همون طور که میبینید در صفحه بالا یک FramLayout
وجود دارد که درون آن چندین لایه دیگر .که یکی از لایه ها LinearLayout است .
ساختار بالا طوری هست که خیلی سخت میشه روی آن ویرایش انجام داد،به عبارتی خیلی کدها خوانا نیست.
در این موارد بهتر است ازinclude استفاده کنید.
طریقه به این صورت هست.
تمامی لایه مورد نظر (در اینجا LinearLayout ) رو پاک میکنیم و درون یک فایل جدید Xml قرار میدیم.(مثلا custom.xml) و کافیه حالا این صفحه رو درون صفحه اصلی ارجاع بدیم.
یعنی صفحه اصلی یک صفحه دیگر رو درون خودش داره.حالا با این کار کدها به صورت زیر تبدیل میشه
نتیجه:
همون طور که میبینید کدها خیلی جمع و جور تر شد.
این روش جایی که خیلی استفاده میشه که شما مثلا میخوایید یه الگو رو درتمام صفحه ها تون اجرا کنید(مثل نوار اکشن و...) این روش خیلی کار برد داره در این موارد.
مبحث طراحی UI:
خیلی از دوستان در یک صفحه خودشون چندین ویو و لی اوت های مختلف دارند ،این تعداد در بعضی موارد اینقدر زیاد میشه که شخص بعضی وقتها سردر گم میشه .
در این موارد بهتره از دستور include استفاده کنید،که خیلی دوستان متاسفانه استفاده نمیکنند.
کد زیر رو ببینید
کد پیاچپی:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#04111e"
>
<ImageView
android:id="@+id/ivAnimation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:contentDescription="Animation" />
<LinearLayout // این لایه مدنظر هست
android:id="@+id/Linear1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:id="@+id/imag_counter1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/audio_ago" />
<TextView
android:id="@+id/text_counter1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="a"/>
<ImageView
android:id="@+id/imag_counter2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/text_counter2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="a"/>
<ImageView
android:id="@+id/imag_counter3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/text_counter3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="a"/>
<ImageView
android:id="@+id/imag_counter4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/text_counter4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="a"/>
</LinearLayout>
// سایر لایه ها
</FrameLayout>
همون طور که میبینید در صفحه بالا یک FramLayout
وجود دارد که درون آن چندین لایه دیگر .که یکی از لایه ها LinearLayout است .
ساختار بالا طوری هست که خیلی سخت میشه روی آن ویرایش انجام داد،به عبارتی خیلی کدها خوانا نیست.
در این موارد بهتر است ازinclude استفاده کنید.
طریقه به این صورت هست.
تمامی لایه مورد نظر (در اینجا LinearLayout ) رو پاک میکنیم و درون یک فایل جدید Xml قرار میدیم.(مثلا custom.xml) و کافیه حالا این صفحه رو درون صفحه اصلی ارجاع بدیم.
کد پیاچپی:
<include
android:layout_width="fill_parent"
android:layout_height="wrap_content"
layout="@layout/custom" />
یعنی صفحه اصلی یک صفحه دیگر رو درون خودش داره.حالا با این کار کدها به صورت زیر تبدیل میشه
نتیجه:
کد پیاچپی:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#04111e"
>
<ImageView
android:id="@+id/ivAnimation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:contentDescription="Animation" />
<include
android:layout_width="fill_parent"
android:layout_height="wrap_parent"
layout="@layout\custom"
/>
// سایر لایه ها
</FrameLayout>
همون طور که میبینید کدها خیلی جمع و جور تر شد.
این روش جایی که خیلی استفاده میشه که شما مثلا میخوایید یه الگو رو درتمام صفحه ها تون اجرا کنید(مثل نوار اکشن و...) این روش خیلی کار برد داره در این موارد.