Я немного новичок в Android и делаю интерфейс, похожий на их интерфейс в Instagram. Я создал файл макета и не уверен, правильно ли я делаю это. Сначала кто-нибудь может сказать мне, правильно ли то, что у меня есть? И во-вторых, как я могу изменить макет, но при этом все еще есть нижние кнопки во всех макетах.

Это мой основной макет:

<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="vertical"
    tools:context=".MainActivity">

    <LinearLayout
        android:id="@+id/theContent"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="9"
        android:orientation="vertical">

        <ListView
            android:id="@+id/list"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:scrollbars="none"
            android:divider="@null" />

    </LinearLayout>

    <LinearLayout
        android:id="@+id/theNav"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="horizontal">

        <ImageButton
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="@android:color/darker_gray"
            android:src="@drawable/button1"
            android:id="@+id/button1" />

        <ImageButton
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="@android:color/darker_gray"
            android:src="@drawable/button2"
            android:id="@+id/button2"/>

        <ImageButton
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="@android:color/darker_gray"
            android:src="@drawable/button3"
            android:id="@+id/button3" />

        <ImageButton
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="@android:color/darker_gray"
            android:src="@drawable/button4"
            android:id="@+id/button4" />

        <ImageButton
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="@android:color/darker_gray"
            android:src="@drawable/button5"
            android:id="@+id/button5" />

    </LinearLayout>

</LinearLayout>

Я говорю, как я могу поменять этот ListView на другой макет нажатием кнопки?

0
Alexiz Hernandez 21 Окт 2015 в 20:30

1 ответ

Лучший ответ

Есть несколько способов сделать это:

  1. Создайте несколько макетов в xml, а затем измените видимость (я не рекомендую для регулярного использования)

  2. Добавьте удаление макетов и представлений (опять же, это возможно, но не рекомендуется).

  3. Фрагменты - добавлять, удалять фрагменты, в которых реализован каждый макет (рекомендуемый способ) Подробнее о фрагментах здесь: фрагменты

У вас может быть фрагмент с ListView, а затем количество разных фрагментов с другими макетами (каждый фрагмент может иметь отдельный файл макета xml). А затем по нажатию кнопки вы можете добавлять, заменять, удалять фрагменты. Вот дополнительная информация о транзакции фрагмента.

1
Community 23 Май 2017 в 11:52