Դաս 2.1.2 – Android Develpment: RelativeLayout

0

Android RelativeLayout-ները հնարավորություն են տալիս հատկորոշել, թե ինչ դիրքում են տեղադրված child view-ները միմյանց հանդեպ: Յուրաքանչյուրի դիրքը կարելի է հատկորոշել կաղված իր հարևան տարրեերից։

 relative

RelativeLayout Ատրիբուտներ

 Ստորև ներկայացված են  RelativeLayout-ների կաևոր ատրիբուտները

Ատրիբուտները և դրանց նկարագրությունը

android:id

Սա այն ID-ն է, որը բացառիկ կերպոց իդենտիֆիկացնում է layout-ը։

android:gravity

Այս սահմանում է, թե ինչպես օբյեկտը պետք է դիրքավորի իր բովանդակությունը, X եւ Y առանցքներում։ Հնարավոր արժեքներն են top, bottom, left, right, center, center_vertical, center_horizontal և այլն:

android:ignoreGravity

Սա ցույց է տալիս, որ view-ն չպետք է կախված լինի գրավիտացիայից:

Օգտագործելով RelativeLayout-ը, դուք կարող եք հավասարեցնել երկու տարրեր ըստ աջ սահմանի, կամ տեղադրել մեկը մյուսի տակ, էկրանի կենտրոնում, ձախ կենտրոնում և այլն: Սկզբնապես բոլոր child view-ները դասավորված են layout-ի վերևի ձախ անկյունում, այնպես որ դուք պետք է սահմանեք յուրաքանչյուրի դիրքը օգտագործելով layout-ի տարբեր հատկությունները, որոնք առկա են RelativeLayout.LayoutParams-ում, և մի քանի կարևոր ատրիբուտներ, որոնք տրված են ստորև

Ատրիբուտները և դրանց նկարագրությունը

android:layout_above

Դիրքավորում է view-ի bottom edge-ը տրված anchor view ID-ից վերև։ Այն պետք է այլ աղբյուրի հղում լինի հետևյալ տեսքով՝    “@[+][package:]type:name”

android:layout_alignBottom

view-ի bottom edge-ը դարձնում է համապատասխան տրված anchor view ID-ի bottom edge-ին։ Այն պետք է այլ աղբյուրի հղում լինի հետևյալ տեսքով՝ “@[+][package:]type:name”

android:layout_alignLeft

view-ի left edge-ը դարձնում է համապատասխան տրված anchor view ID-ի left edge-ին։ Այն պետք է այլ աղբյուրի հղում լինի հետևյալ տեսքով՝ “@[+][package:]type:name”

android:layout_alignParentBottom

Եթե true է, view-ի bottom edge-ը դարձնում է համապատասխան ծնողի bottom edge-ին: Պետք է լինի boolean արժեք՝ true կամ false

android:layout_alignParentEnd

Եթե true է, view-ի end  edge-ը դարձնում է համապատասխան ծնողի end edge-ին: Պետք է լինի boolean արժեք՝ true կամ false 

Android:layout_alignParentLeft

Եթե true է, view-ի left edge-ը դարձնում է համապատասխան ծնողի left edge-ին: Պետք է լինի boolean արժեք՝ true կամ false

android:layout_alignParentRight

Եթե true է, view-ի right edge-ը դարձնում է համապատասխան ծնողի right edge-ին: Պետք է լինի boolean արժեք՝ true կամ false

android:layout_alignParentStart

Եթե true է, view-ի start edge-ը դարձնում է համապատասխան ծնողի start edge-ին: Պետք է լինի boolean արժեք՝ true կամ false

android:layout_alignParentTop

Եթե true է, view-ի top edge-ը դարձնում է համապատասխան ծնողի top edge-ին: Պետք է լինի boolean արժեք՝ true կամ false

android:layout_alignRight

view-ի right edge-ը դարձնում է համապատասխան տրված anchor view ID-ի right edge-ին։ Այն պետք է այլ աղբյուրի հղում լինի հետևյալ տեսքով՝ “@[+][package:]type:name”

android:layout_alignStart

view-ի start edge-ը դարձնում է համապատասխան տրված anchor view ID-ի start edge-ին։ Այն պետք է այլ աղբյուրի հղում լինի հետևյալ տեսքով՝ “@[+][package:]type:name”

android:layout_alignTop

view-ի top  edge-ը դարձնում է համապատասխան տրված anchor view ID-ի top edge-ին։ Այն պետք է այլ աղբյուրի հղում լինի հետևյալ տեսքով՝ “@[+][package:]type:name”

android:layout_below

Դիրքավորում է view-ի top  edge-ը տրված anchor view ID-ից ներքև։ Այն պետք է այլ աղբյուրի հղում լինի հետևյալ տեսքով՝    “@[+][package:]type:name”

android:layout_centerHorizontal

Եթե true է, կենտրոնական դիքի է բերում child-ը հորիզոնական իր parent-ին: Պետք է լինի boolean արժեք՝ true կամ false

android:layout_centerInParent

Եթե true է, կենտրոնական դիքի է բերում child-ը ուղղահայաց և հորիզոնական իր parent-ին: Պետք է լինի boolean արժեք՝ true կամ false

android:layout_centerVertical

Եթե true է, կենտրոնական դիքի է բերում child-ը ուղղահայաց իր parent-ին: Պետք է լինի boolean արժեք՝ true կամ false

android:layout_toEndOf

Դիրքավորում է view-ի start edge-ը տրված anchor view ID-ի  end-ին։ Այն պետք է այլ աղբյուրի հղում լինի հետևյալ տեսքով՝    “@[+][package:]type:name”

android:layout_toLeftOf

Դիրքավորում է view-ի right edge-ը տրված anchor view ID-ի  left-ին։ Այն պետք է այլ աղբյուրի հղում լինի հետևյալ տեսքով՝    “@[+][package:]type:name”

android:layout_toRightOf

Դիրքավորում է view-ի left edge-ը տրված anchor view ID-ի  right-ին։ Այն պետք է այլ աղբյուրի հղում լինի հետևյալ տեսքով՝    “@[+][package:]type:name”

android:layout_toStartOf

Դիրքավորում է view-ի end edge-ը տրված anchor view ID-ի  start-ին։ Այն պետք է այլ աղբյուրի հղում լինի հետևյալ տեսքով՝    “@[+][package:]type:name”

 Օրինակ

Այս օրինակը պարզ քայլերով ցույց տալ, թե ինչպես պետք է ստեղծել սեփական Android հավելվածը՝ օգտագործելով Relative Layout-ը՝ հարաբերական դասավորությունը։ Հետևեք հետեւյալ քայլերին Hello World օրինակում ստեղծած Android հավելվածը փոփոխելու համար։

  1. օգտագործեք Android Studio IDE-ն Android հավելված ստեղծելու համար և անվանեք այն demo com.example.demo փաթեթի տակ ինչպես բացատրված է Hello World օրինակում
  2. Փոփոխեք res/layout/activity_main.xml ֆայլի կոնտենտը ներառելով մի քանի widget-ներ Relative layout-ով
  3. Սահմանել պահանջվող constant-ները res/values/strings.xml ֆայլում
  4. Run արեք հավելվածը Android emulator-ը սկսելու համար և հաստատեք հավելվածում կատարված փոփոխությունների արդյունքը

Ահա ձևափոխված ֆայլը src / com.example.demo / MainActivity.java: Այս ֆայլը կարող է ներառել յուրաքանչյուր ֆունդամենտալ lifecycle մեթոդ։

package com.example.demo;

import android.os.Bundle;
import android.app.Activity;

public class MainActivity extends Activity {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
   }
   
}

Հաջորդը կլինի res/layout/activity_main.xml ֆայլի կոնտենտը՝ բովանդակությունը։

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:paddingLeft="16dp"
   android:paddingRight="16dp" >
   
   <EditText
      android:id="@+id/name"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:hint="@string/reminder" />
      
   <LinearLayout
      android:orientation="vertical"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:layout_alignParentStart="true"
      android:layout_below="@+id/name">
      
      <Button
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="New Button"
         android:id="@+id/button" />
      
      <Button
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="New Button"
         android:id="@+id/button2" />
      
   </LinearLayout>

</RelativeLayout>

Հաջորդը կլինի res/values/strings.xml –ի կոնտենտը երկու նոր կոնստանտով։

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <string name="action_settings">Settings</string>
   <string name="reminder">Enter your name</string>
</resources>

Փորձենք աշխատեցնել մեր ձևափոխված Hello World հավելվածը։ Կարծում ենք, որ դուք ստեղծել եք Ձեր AVD-ն environment setup դասընթացի շրջանակներում։ Android Studio-ից հավելվածը գործարկելու համար, բացեք ձեր project activity file-երից մեկը և սեղմեք Run Eclipse Run Icon կոճակը։ Android Studio-ն կտեղադրի ծրագիրը AVD-ում և կսկսի այն։ Եթե ամեն ինչ կարգին է setup և հավելվածի  հետ, ապա կհայտնվի հետեևյալ Emulator պատուհանը

relative1

Share.