Орналасу бірнеше ViewGroup мұрагерлерінің жалпы атауы болып табылады. Орналастырулар көру үшін контейнерлер ретінде қызмет етеді және олар барлық түймелерді, мәтін ұяларын және басқа интерфейс элементтерін ыңғайлы орналастыру үшін жасалады.
«Ең қажетті» орналасуы тек 3:
• LinearLayout
• FrameLayout
• RelativeLayout
Қолданбалардың көпшілігінде оларды макеттер ретінде қолдануға болады, мүмкін, 90% жағдайда.
Әрине, олардың көп бөлігі бар - ViewGroup сыныбында 44 тікелей мұрагер бар. Бірақ бізде осы үшеудің басталуы жеткілікті, ал қалғандары кейінірек қарастырылады.
Мына суретке қараңыз:
Батырмалар, енгізу өрісі - Көрініс. Түймелердің айналасындағы жасыл рамка ViewGroup шекарасы болып табылады, оның ішінде түймелер. Өз кезегінде, түймешіктер мен кіріс өрісі бар ViewGroup басқа шекарадағы қызыл түспен белгіленген басқа ViewGroup ішіне кіреді.
Ұяшықтар түрінде тұтас «фон» - бұл Интерфейстің басқа элементтері.
LinearLayout
LinearLayout, аты көрсетілгендей, еншілес элементтері бар «сызықтық» тәртіпте, яғни. бір-бірден. Сызықтық орналасу көлденең немесе тік болуы мүмкін. Келіңіздер, ол туралы не білеміз. Барлық үлгі кодын жойыңыз және орнына келесі кодты енгізіңіз:
Көріп отырғанымыздай, біз LinearLayout құрдық және оның ішінде үш батырма орналастырдық. LinearLayout бағдар атрибутына назар аударыңыз. Бұл мазмұндағы мазмұнның «бағыты» туралы көрсетеді. Бағдарлау төлсипаты екі мәнді - «көлденең» және «тік» болуы мүмкін. Сіз болжап отырғандай, бірінші жағдайда балалар көлден-сол жақтан оңға, екіншісінде - тікінен жоғарыдан төменге қарай орналасады.
Бұл мысалда біз элементтерді көлденең орналастырдық. Қолданбаны іске қосыңыз және келесі суретті көресіз:
Жобаны іске қосқаннан кейін біз төмендегілерді көреміз:
Яғни. енді элементтер тігінен реттеледі.
LinearLayout (дәлірек айтқанда, оның еншілес көрінісі) тағы бір қызықты атрибутқа ие - layout_weight. Бұл атрибутпен макетке элементтің қаншалықты орын алатындығын айтамыз. Кез келген сан мән ретінде пайдаланылуы мүмкін. Мысалы, біз екі түйменің арасындағы кеңістікті біркелкі таратуды қаласақ, layout_weight = 1 түймелерін орната аламыз, сонда олар қол жетімді кеңістікті екі тең бөлікке бөледі. Егер бір түймені салмақ = 1, екіншісі = 2 болса, екінші түйме біріншіден екі есе көп орын алады. Мұның қалай жұмыс істейтінін түсіну үшін келесіні қарастырайық:
Сондай-ақ, layout_weight төлсипатын пайдаланған кезде, ені (егер орналасу көлденең болса) немесе биіктік (егер орналасу тік болса) 0dp үшін өзгерту ұсынылады. Dp дегеніміз не, келесі сабақтарда сөйлесеміз.
Көріп отырғанымыздай, біз алғашқы екі түймені салмақты = 1, ал үшінші = 2 тең етіп алдық. Алғашқы екі түйме экранның сол жақ жартысын алады, ал үшінші - оң жақ жарты, яғни ені басқа түймелер сияқты екі есе үлкен болады. Келіңіздер, не болды:
Бұл өте жақсы емес болды, өйткені алғашқы екі түйме мәтінді көрсетілген енге сай келмеді және бөлік жаңа жолға ауыстырылды, сондықтан бұл түймелер «жоғары» болды. Алайда, мән-мағынасы айқын - үшінші батырма басқалармен салыстырғанда екі есе кең.
Тігінен орналасу үшін бұл бірдей жұмыс істейді, тек қана биіктік өзгереді.