Как создать информационный экран, заполненный подробной информацией об объекте - PullRequest
0 голосов
/ 13 сентября 2018

Как я могу эффективно и аккуратно изменить дизайн этого инфо-экрана из приложения Android Food Deliver?(особенно часть "ALLGEMEINE INFO")

Infoscreen (Goal)

В настоящее время я делаю это с ScrollView, заполненным Main LinearLayout (ориентация = вертикаль).Внутри более чередуются линейные разметки, которые делают все это сложным, а не чистым.

Вот мой текущий код:

<ScrollView
    android:layout_width="0dp"
    android:layout_height="0dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <ImageView
            android:id="@+id/imageView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:srcCompat="@drawable/food_1" />

        <TextView
            android:id="@+id/textView3"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Restaurant"
            android:textAlignment="center"
            android:textAppearance="@style/TextAppearance.AppCompat.Large" />

        <me.zhanghai.android.materialratingbar.MaterialRatingBar
            style="@style/Widget.MaterialRatingBar.RatingBar.Indicator.Small"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/restaurant_item_num_ratings"
            android:layout_alignLeft="@+id/restaurant_item_num_ratings"
            android:layout_centerHorizontal="true"
            android:layout_gravity="center_horizontal" />

        <TextView
            android:id="@+id/textView4"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:text="32 Bewertungen"
            android:textAlignment="center" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="ALLGEMEINE INFO"
            android:layout_marginTop="@dimen/activity_vertical_margin"
            android:layout_marginBottom="@dimen/activity_vertical_margin"
            android:layout_marginStart="8dp"/>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:src="@drawable/ic_settings_black_24dp"
                android:layout_marginStart="@dimen/activity_horizontal_margin"
                android:layout_marginEnd="@dimen/activity_horizontal_margin"/>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical">

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="11:00 - 23:00"
                    android:textStyle="bold" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Öffnungszeiten" />

            </LinearLayout>
        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_marginTop="4dp">

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:src="@drawable/ic_map_black_24dp"
                android:layout_marginStart="@dimen/activity_horizontal_margin"
                android:layout_marginEnd="@dimen/activity_horizontal_margin"/>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical">

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Some Restaurant"
                    android:textStyle="bold" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Firmenname" />

            </LinearLayout>


        </LinearLayout>


    </LinearLayout>
</ScrollView>

и предварительный просмотр проекта:

My current design (preview)

Есть ли "более чистый" способРазработай это?С RecyclerView и т.п.Кстати, отдельные элементы будут загружены из базы данных.

Ответы [ 2 ]

0 голосов
/ 14 сентября 2018

Как сказал Артем, Recyclerview будет полезным здесь.Также я бы посоветовал разместить информацию в Cardviews, в зависимости от того, как вы хотите, чтобы информация отображалась, вы можете сделать действительно чистые макеты информации / деталей.Если вы все сделаете правильно, представление переработчика будет гораздо более аппетитным, чем представление прокрутки.

0 голосов
/ 13 сентября 2018

Используйте RecyclerView и объекты, чтобы заполнить его, вместо этого исправлено LinearLayout

Некоторые данные могут отсутствовать, поэтому вы получите пустые строки ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...