Posted by : Wai Hlyan Sunday, January 10, 2016

Lesson 7 (Layout & Size)

ဒီ​ေန႔တင္​​ေပးမွာက အ​ေရးအႀကီးဆံုးအခန္​းျဖစ္​တဲ့ Layout အခန္​းပါ။ ဘာျဖစ္​လို႔အ​ေရးႀကီးတာလဲဆို​ေတာ့ ​ေဆာ့ဝဲတိုုင္​းမွာ သံုးရမွာမို႔လို္​ပါ။ ကြၽန္​​ေတာ္​ကလဲ တစ္​ခု​ေလာက္​တင္​​ေပးၿပီး ၁ပတ္​​ေလာက္​နားတာဆို​ေတာ့ မွတ္​မိ​ေသးလားမသိပါဘူး။

•Layout ဆိုတာ နားလည္​​ေအာင္​​ေျပာရရင္​ အလႊာ​ေပါ့ဗ်ာ။ သူမ်ား​ေတြက​ေတာ့ ဘယ္​လိုအဓိပၸါယ္​ ဖြင္​့လဲမသိဘူး။ ကြၽန္​​ေတာ္​က နားလည္​​ေအာင္​​ေျပာလိုက္​တာပါ။ ဥပမာတစ္​ခု​ေျပာပါမယ္​။ button တစ္​ခုကိုလုပ္​မယ္​ဆို button ရဲ႕code ​ေတြျဖစ္​တဲ့
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"/>

ဆိုတဲ့code ​ေတြကို ထည္​့ရပါတယ္​။ ဒီနည္​းကို lesson 3 မွ​ေျပာထားၿပီသားပါ။ button apk တစ္​ခုလုပ္​ရင္​ အဲ့ဒါနဲ႔ပဲမၿပီးပါဘူး။ project အသစ္​လုပ္​လိုက္​ရင္​ ဘာမွမထည္​့ခင္​​ေပၚတဲ့code ​ေတြမွာ <LinearLayout .........> ဆိုၿပီး​ေတာ့ စ​ေပးထားၿပီ </LinearLayout> ဆိုၿပီး ျပန္​ပိတ္​​ေပးထားပါတယ္​။ အဲ့ဒါ Layout တစ္​ခုပါ။
Layout ႏွစ္​မ်ိဳး႐ွိပါတယ္​။ LinearLayout နဲ႔ RelativeLayout ဆိုၿပီး႐ွိပါတယ္​။ LinearLayout က သူ႔ထဲမွာထည္​့မယ္​့ item(buttonတို႔textField)တို႔ကို LinearLayout က​ေနလွမ္​းထိန္​းခ်ဳပ္​ႏိုင္​ၿပီး​ေတာ့ RelativeLayout က​ေတာ့ Item ​ေတြကိုယ္​တိုင္​ ထိန္​းခ်ဳပ္​ႏိုင္​ပါတယ္​။ ဥပမာ LinearLayout မွာ android:orientation ကို vertical လုပ္​ထားမယ္​ဆိုရင္​ </LinearLayout> မ​ေရာက္​သ​ေရြ႔ item ​ေတြအကုန္​လံုးက ​ေဒါင္​လိုက္​အ​ေနအထားနဲ႔ စီသြားပါလိမ္​့မယ္​။
(မွတ္​ခ်က္​>> Item မ်ားမွာ Button မ်ား Text မ်ား TextField မ်ား ကိုရည္​ၫႊန္​းသည္​။) ၿပိီး​ေတာ့ android:orientation ကို horizontal လုပ္​လိုက္​ရင္​ </LinearLayout> နဲ႔မပိတ္​သ​ေရြ႔ အလ်ားလိုက္​အတိုင္​း စီသြားပါလိမ္​့မယ္​။ တကယ္​လို႔ <RelativeLayout နဲ႔ဆိုရင္​ android:orientation ကအလုပ္​မလုပ္​ပါဘူး။ သူက item က​ေနလုပ္​ရတာပါ။ ဥပမာ ခလုပ္​တစ္​ခုကို အလယ္​မွာထားခ်င္​ရင္​ <Button ဆိုတဲ့ code ​ေတြထဲမွာ android:layout_gravity="center" ဆိုတာ​ေလးထည္​့ရတာ​ေပါ့။ {layout_gravity အ​ေၾကာင္​းကို Lesson 8တြင္​ ႐ွင္​းလင္​း​ေပးသြားပါမည္​။} သူကနည္​းနည္​း​ေတာ့ အလုပ္​႐ႈပ္​တယ္​။ ဒါ​ေပမယ္​့ ခလုပ္​​ေတြ တစ္​ခုနဲ႔တစ္​ခု ထပ္​ထားလို႔ရတယ္​။ ကိုယ္​ႀကိဳက္​တဲ့​ေနရာထားလို႔ရတယ္​။ ကြၽန္​​ေတာ္​အၾကံျပဳခ်င္​တာက​ေတာ့ Linear Layout က RelativeLayout ထက္​ ပိုလြယ္​တာ​ေၾကာင္​့ မကြၽမ္​း​ေသးရင္​ Linear Layout ပဲသံုးၾကပါလို႔အၾကံျပဳပါတယ္​ခဗ်ာ။

•Size
Size ​ေတြအ​ေၾကာင္​း​ေျပာမယ္​​ေနာ္​။ ကြၽန္​​ေတာ္​လုပ္​ခဲ့တဲ့ Lesson ထဲမွာ ​ေတြ႔မိမွာ​ေပါ့။ android:layout_width တို႔ android:layout_height တို႔။ အဲ့အ​ေၾကာင္​း​ေလး​ေျပာပါမယ္​။ android:layout_width ဆိုတာ အလ်ားလိုက္​အက်ယ္​​ေပါ့။ android:layout_heightဆိုတာက အျမင္​့​ေပါ့။ သူ႔မွာvalue သံုးမ်ိဳး႐ွိပါတယ္​။value ဆိုတာက ညီမ်ွျခင္​းထိုးၿပီး "" ထဲ​ေရးတာ​ေပါ့။ ​ေ႐ွ႕က android:layout_width တို႔ android:layout_heightတို႔ android:textတို႔က key လို႔​ေခၚပါတယ္​။(​ေၾကာ္​ျငာဝင္​လိုက္​တာ :-P :-P )  အ​ေပၚျပန္​သြားမယ္​ဗ်ာ။ အဲ့ value သံုးမ်ိဳးက-
1• Match_parent
2•Wrap_content
3•Fix Size တို႔ပါ။

•Match_parent
ဒီဟာက​ေတာ့ အသံုးနည္​းပါတယ္​။ သူ႔အ​ေၾကာင္​းနည္​းနည္​း​ေျပာျပမယ္​​ေနာ္​။ ဥပမာ Button ႏွစ္​ခုကို အလ်ားလိုက္​အတိုင္​းထားမယ္​ဆိုရင္​ button ​တစ္​ခုရဲ႕အက်ယ္​ကို screenရဲ႕ ၃ပံုတစ္​ပံု​ေလာက္​ထားၿပီး ​ေနာက္​တစ္​ခုကို match_parent ထားမယ္​ဆို က်န္​တဲ့ ၃ပံု၂ပံုကို match_parent ထားတဲ့ ခလုပ္​က ယူသြားပါလိမ့္​မယ္​။ match_parent က​ေနာက္​ပိုင္​း tutorial ​ေတြလုပ္​ရင္​း နားလည္​သြားပါလိမ္​့မယ္​။

•Wrap_content

ဒီဟာက ကြၽန္​​ေတာ္​​ေ႐ွ႕ပိုင္​း lesson ​ေတြမွာ သံုးခဲ့တဲ့ value ​ေတြပါ။ wrap_content သံုးရင္​ သူ႔ထဲမွာ႐ွိတဲ့ item ​ေတြ႐ွိသ​ေလာက္​ပဲ ​ေနရာယူတာပါ။ ဥပမာ ခလုပ္​တစ္​ခုကို wrap_content နဲ႔size ယူမယ္​ဆို ခလုပ္​မွာထည္​့ထားတဲ့ စာလံုး႐ွိသ​ေလာက္​ပဲ ​ေနရာယူမွာပါ။ ဥပမာ ခလုပ္​တစ္​ခုမွာ android:text က Help လို႔ပဲ​ေရးထားရင္​ Help စာလံုးအက်ယ္​​ေလာက္​ပဲ button ကက်ယ္​မွာပါ။ ​ေဘးကိုလည္​းမပိုပါဘူး။ တကယ္​လို႔ android:text မွာ introduction လို္​​ေရးထားရင္​​ေတာ့ button က introduction ဆိုတဲ့ စာလံုးအက်ယ္​​ေလာက္​ က်ယ္​သြားၿပီး Help ဆိုတဲ့ Button ထက္​ ႀကီးသြားမွာ​ေပါ့။ ဒီ​ေလာက္​ဆို wrap_content အ​ေၾကာင္​းနားလည္​​ေလာက္​ပါၿပီ။

Fix_size
ဒီမွာႏွစ္​မ်ိဳးထပ္​ကြဲပါတယ္​။

Fill_parentနဲ႔ dp ဆိုတဲ့ ယူနစ္​ပါတဲ့ size ပါ။
Fill_parent အ​ေၾကာင္​းအရင္​​ေျပာပါမယ္​။ fill_parent ဆိုတာ အျပည္​့ယူတာ​ေပါ့။ ဥပမာ ခလုပ္​တစ္​ခုရဲ႕ အက်ယ္​ကို screen အျပည္​့ယူခ်င္​ရင္​ android:layout_width="fill_parent"ဆိုၿပီး သံုးရပါတယ္​။ ​ေနာက္​ၿပီး အျမင္​့ပါအျပည္​့ထပ္​ယူခ်င္​ရင္​ android:layout_height ကို fill_parent လုပ္​လိုက္​​ေပါ့။
​ေနာက္​တစ္​ခုက dp နဲ႔​ေရးတာပါ။ dp ဆိုတာ အတိုင္​းအတာရဲ႕ ယူနစ္​ပါ။ သူက button တို႔ text တို႔ကို တစ္​ညီတည္​းထားခ်င္​ရင္​ သံုးတာပါ။ ဥပမာ ခလုပ္​ႏွစ္​ခုကို အက်ယ္​အတူတူပဲ ထားခ်င္​ရင္​ wrpa_contentလည္​းသံုးလို႔မရပါဘူး။ ဘာျဖစ္​လို႔လဲဆို​ေတာ့ စာလံုးခ်င္​းမွမတူတာ။ fill_parent လိုအျပည္​့လဲမထားခ်င္​ပါဘူး။ အဲ့က်ရင္​ ခလုပ္​ႏွစ္​ခုလံုးရဲ႕ layout_width value ကို 100dp လို႔သံုးပါတယ္​။ နည္​းနည္​းထပ္​က်ယ္​ခ်င္​​ေသးရင္​ 150dp တို 200dp တို႔ ႀကိဳက္​သလို႔သံုးလို႔ရပါတယ္​။ height လဲအဲ့တိုင္​းပါပဲ ခလုပ္​ႏွစ္​ခုလံုးကို android:layout_height="80dp" ဆိုၿပီး ႏွစ္​ခုလံုးထည္​့လိုက္​ရင္​ အျမင္​့တူသြားပါၿပီ။ အဲ့​ေလာက္​ဆို စိတ္​ႀကိဳက္​ထည္​့ၿပီးသံုးၾကည္​့ပါ။

အစက​ေတာ့ Layout ဆိုၿပီး lesson တစ္​ခါ size ဆိုၿပီး lesson တစ္​ခါ တင္​​ေပးမလို႔ပါ။ ႏွစ္​ခုလံုးအ​ေရးႀကီးတာမို႔လို႔ တစ္​ကြဲတစ္​ျပားစီ မျဖစ္​​ေအာင္​ စုတင္​​ေပးလိုက္​တာပါ။ ​ေနာက္​ထပ္​ အ​ေသးစိတ္​ကို ​ေနာက္​ထပ္​Lesson ​ေတြမွာၾကံဳရင္​ၾကံဳသလို ​ေျပာျပ​ေပးသြားပါမယ္​။

အဆင္​မ​ေျပတာ​ေလး​ေတြ comment မွာ ဝင္​​ေပးႏိုင္​ပါတယ္။



သင္​၏comment တစ္​​ေၾကာင္​းသည္​ ကြၽန္​ုပ္​အတြက္​ ​ေနာက္ပိုစ္​့မ်ားတင္​ရန္​ အား​ေဆးတစ္​ခြက္​ ျဖစ္​​ေစပါလိမ္​့မည္​။

{ 3 မွတ္​ခ်က္​မ်ား... read them below or Comment }

  1. ေကာင္းတယ္ဆရာ။ နည္းနည္းေတာ့ၾကာတယ္။

    ReplyDelete
  2. ဆရာ ျပန္​႐ွယ္​​လိုက္​တယ္​

    ReplyDelete
  3. ေကာင္းလိုက္တာ ေက်းဇူးလည္းတင္ပါတယ္ ဆရာ

    ReplyDelete

လာ​ေရာက္​ၾကည္​့႐ွႈသူမ်ား

Welcome to My Blog

Zawgyi-Unicode

Designed by အိမ္​​ေ႐ွ႕မင္​းသား-နည္​းပညာ. Powered by Blogger.

Random Posts

Contact Form

Name

Email *

Message *

Thankful

Popular Posts

- Copyright © Myanmar Android Tutorials For Beginners -Robotic Notes- Powered by Blogger - Designed by Johanes Djogan -