Android / XML: сделать TextView в центре XML, когда RecyclerView пуст - PullRequest
1 голос
/ 18 мая 2019

В настоящее время я создаю приложение, которое использует RecyclerView. RecyclerView может отображать «Список пуст», если в списке нет данных. Но что происходит, так это то, что текст абсолютно в центре, а не в центре XML.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/haha"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MyHistoryList">
<TextView
    android:id="@+id/title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:maxLines="1"
    android:clickable="false"
    android:focusable="false"
    android:longClickable="false"
    android:textStyle="bold"
    android:textSize="18sp"
    android:textColor="#FFFFFF" />

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

    <TableRow
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="15dp">

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight=".80"
            android:gravity="start"
            android:text="Suggestion"
            android:textAllCaps="true"


   android:textAppearance="@style/Base.TextAppearance.AppCompat.Medium"
            android:textColor="@color/colorAccent"
            android:textStyle="bold"
            app:fontFamily="@font/anaheim" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight=".20"
            android:gravity="start"
            android:text="Status"
            android:textAllCaps="true"

   android:textAppearance="@style/Base.TextAppearance.AppCompat.Medium"
            android:textColor="@color/colorAccent"
            android:textStyle="bold"
            app:fontFamily="@font/anaheim" />
    </TableRow>

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recylcerView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="10dp"
        android:layout_marginBottom="10dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"/>

    <TextView
        android:visibility="visible"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/emptyView"
        android:text="List is Empty"
        android:gravity="center"
        android:layout_gravity="center"
        android:textSize="30sp"/>
    </LinearLayout>
</LinearLayout>

Вот мой код Java.

if(array.length() == 0){
                            //display empty with your code.
                            emptyView.setVisibility(View.VISIBLE);
                            recyclerView.setVisibility(View.GONE);
                        }else {
                            emptyView.setVisibility(View.GONE);
                            recyclerView.setVisibility(View.VISIBLE);
                            for (int i = 0; i < array.length(); i++) {

                                //getting product object from json array
                                JSONObject userJson = array.getJSONObject(i);

                                userList.add(new User(
                                        userJson.getInt("id"),
                                        userJson.getString("name").replace("null", ""),
                                        userJson.getString("badgeid").replace("null", ""),
                                        userJson.getString("position").replace("null", ""),
                                        userJson.getString("department").replace("null", ""),
                                        userJson.getString("factory").replace("null", ""),
                                        userJson.getString("reviewer").replace("null", ""),
                                        userJson.getString("title").replace("null", ""),
                                        userJson.getString("year").replace("null", ""),
                                        userJson.getString("month").replace("null", ""),
                                        userJson.getString("suggestionwill").replace("null", ""),
                                        userJson.getString("present").replace("null", ""),
                                        userJson.getString("details").replace("null", ""),
                                        userJson.getString("benefit").replace("null", ""),
                                        userJson.getString("photo").replace("null", ""),
                                        userJson.getString("status").replace("null", ""),
                                        userJson.getString("comment").replace("null", "")
                                ));

Ниже мой текущий XML

https://scontent.fkul8 -1.fna.fbcdn.net / об / t1.0-9 / 60515690_10216139628056609_7099924834024423424_n.jpg? _Nc_cat = 106 & _nc_eui2 = AeHvv0bzaCNYPgIufVyqiMZGqXAQPaArqTPCB4Ix5QXrob9n9jb61O1bt03p-heNH0axIeIO8cOXmEyDzgRZJxNGdYtE_KX0CwckEJnIT_7piA & _nc_ht = scontent.fkul8-1.fna & OH = f6ed096592ceefcb151c71acf9393b63 & ае = 5D6BF3CC

Как я хочу, чтобы текст "Список пуст" был в центре XML?

Ответы [ 3 ]

0 голосов
/ 18 мая 2019

Ниже ваш обновленный файл макета.пожалуйста, используйте его, чтобы получить решение вашей проблемы.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/haha"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MyHistoryList">

    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:clickable="false"
        android:focusable="false"
        android:gravity="center"
        android:longClickable="false"
        android:maxLines="1"
        android:textColor="#FFFFFF"
        android:textSize="18sp"
        android:textStyle="bold" />

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

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="15dp"
            android:layout_marginRight="15dp">

            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight=".80"
                android:gravity="start"
                android:text="Suggestion"
                android:textAllCaps="true"
                android:textAppearance="@style/Base.TextAppearance.AppCompat.Medium"
                android:textColor="@color/colorAccent"
                android:textStyle="bold"
                app:fontFamily="@font/anaheim" />

            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight=".20"
                android:gravity="start"
                android:text="Status"
                android:textAllCaps="true"
                android:textAppearance="@style/Base.TextAppearance.AppCompat.Medium"
                android:textColor="@color/colorAccent"
                android:textStyle="bold"
                app:fontFamily="@font/anaheim" />
        </TableRow>
    </LinearLayout>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <android.support.v7.widget.RecyclerView
            android:id="@+id/recylcerView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            android:layout_marginRight="10dp"
            android:layout_marginBottom="10dp"
            android:visibility="gone" />

        <TextView
            android:id="@+id/emptyView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:gravity="center"
            android:text="List is Empty"
            android:textSize="30sp"
            android:visibility="visible" />
    </RelativeLayout>
</LinearLayout>

Теперь вам нужно обработать код, как если бы вы не получили данные в вашем recyclerView, только что перешли на просмотрщик и сделайте видимым textView, который содержит «Список пуст»".

enter image description here

0 голосов
/ 18 мая 2019

Установить гравитацию LinearLayout в центр

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/haha"
     android:gravity="center"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MyHistoryList">
    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:maxLines="1"
        android:clickable="false"
        android:focusable="false"
        android:longClickable="false"
        android:textStyle="bold"
        android:textSize="18sp"
        android:textColor="#FFFFFF" />
0 голосов
/ 18 мая 2019

Simple обрабатывает логическое значение, если есть информация true, если не false, если логическое true, делает переработчик видимым и скрывает текстовое представление с атрибутом видимости (нет / видим), и если оно ложно, у вас естьНапротив, в случае сомнений, по вашему мнению, вы должны объявить текстовый вид и переработчик, которые вы будете видны в зависимости от случая.

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