Главная » Файлы » Java для Android » Проект: Адаптация курсов от Google

Создание простого пользовательского интерфейса. Часть 2
04.01.2015, 17:36

Добавление кнопки


  1. В Android Studio, из каталога res/layout, откройте файл activity_my.xml.
  2. В определении слоя <LinearLayout>, объявите компонент <Button> после компонента <EditText>.
  3. Установите значение "wrap_content" у атрибутов высоты и ширины, кнопка будет иметь размеры текста на кнопке.
  4. Объявите текст на кнопке с помощью атрибута android:text; установите значение button_send ссылающееся на строковый ресурс.

Слой <LinearLayout> должен выглядеть так:

res/layout/activity_my.xml

<LinearLayout 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:orientation="horizontal" >
      <EditText android:id="@+id/edit_message"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="@string/edit_message" />
      <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button_send" />
</LinearLayout>

Заметка: Эта кнопка не нуждается в атрибуте android:id, т.к. не будет использоваться в коде формы.

Слой спроектирован так, что компоненты EditText и Button занимают столько места, сколько им необходимо (Рисунок 2).

Рисунок 2. Компоненты EditText и Button с шириной "wrap_content".

Это хорошо работает с кнопкой, но не с текстовым полем, потому что пользователь может написать что-то длиннее. Было бы неплохо заполнить оставшееся место текстовым полем. Для того чтобы это сделать, нужно заменить значение атрибута android:layout_weight.

Значение weight - это число, которое определяет сколько места будет занимать компонент.

По-умолчанию у всех объектов это значение равно 0, а это значит, что компонент будет занимать столько места, сколько ему нужно.

Как растянуть текстовое поле по ширине экр


Чтобы заполнит пустое пространство компонентом EditText нужно:

  1. В файле activity_my.xml, присвойте атрибуту layout_weight компонента <EditText> значение 1.
  2. Также присвойте атрибуту layout_width компонента <EditText> значение 0dp.

    res/layout/activity_my.xml

    <EditText
        android:layout_weight="1"
        android:layout_width="0dp"
        ... />

    Для повышения эффективности отображения нужно изменить длину компонента на "0dp".

    На рисунке 3 показан компонент EditText.

    Рисунок 3. EditText занимающий все доступное пространство

После всей работы activity_my.xml должен быть таким:

res/layout/activity_my.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="horizontal">
    <EditText android:id="@+id/edit_message"
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:hint="@string/edit_message" />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button_send" />
</LinearLayout>

Осталось только запустить проект.

Категория: Проект: Адаптация курсов от Google | Добавил: TAdm | Теги: create, Studio, проекта, Project, Guide, Android, курсы, UI, agc
Просмотров: 875 | Загрузок: 0 | Рейтинг: 0.0/0
Всего комментариев: 0
ComForm">
avatar