Просмотр в ConstraintLayout не помещается так, как ожидалось, когда приложение запускается на устройстве

Вот решение с find + awk

find . -maxdepth 1 -type f -printf '%TY-%Tm-%Td\n' | awk '{array[$0]+=1}END{ for(val in array) print val" "array[val]   }'

По сути, происходит то, что мы находим все обычные файлы и печатаем их время модификации, как указано в формате %T, а затем awk берет на себя и подсчитывает каждую строку, используя ассоциированные массивы. оператор END{} использует цикл for, чтобы пройти через все элементы в связанном массиве, а также распечатать ключ + массив [ключевое] содержимое (это дата + счет).

Вы можете захотеть используйте sort для организации вывода, особенно sort -k 1 на основе столбца 1 (который является датой), но это необязательно. Также -maxdepth 1 будет проверять файлы только в текущей папке. Если вы хотите найти файлы в подкаталогах, удалите часть -maxdepth 1.

Выход образца

$ find . -maxdepth 1 -type f -printf '%TY-%Tm-%Td\n' | awk '{array[$0]+=1}END{ for(val in array) print val" "array[val]   }'

2015-09-29 1
2016-04-06 2
2016-04-07 10
2016-04-08 2
2015-11-05 2
2016-04-22 2
2016-04-23 6
2016-04-24 1
2015-11-21 2
2015-11-22 2
1
задан 13 August 2018 в 14:58

5 ответов

Я думаю, что ваша проблема здесь:

app:layout_constraintBottom_toBottomOf="@+id/textViewReason"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/textViewReason"

Где вы пытаетесь использовать constraintTop и constraintBottom в одном представлении.

0
ответ дан 15 August 2018 в 17:02
  • 1
    попытался удалить одно из ограничений. Не работает. – Tarun Baria 13 August 2018 в 15:08
  • 2
    @TarunBaria Не могли бы вы дать мне образец вашего желания? – Mohammad Zarei 15 August 2018 в 11:00
  • 3
    проблема решена. Я сделал правильный ответ. в принципе, я хотел, чтобы один textView находился в правой части экрана, который скользил вниз, чтобы левая сторона была видна на картинке. спасибо за ответ в любом случае. – Tarun Baria 15 August 2018 в 16:34

Попробуйте следующее:

<TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="8dp"
        android:text="TextView"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintBaseline_toBaselineOf="@id/textViewReason" />

В идеале вам просто нужно ограничить базовую линию, если вы хотите, чтобы она соответствовала причине textView

0
ответ дан 15 August 2018 в 17:02
  • 1
    Да, ты прав. Но это не решило проблему. Спасибо, что ответили! – Tarun Baria 14 August 2018 в 12:57

Попробуйте использовать приведенный ниже код для вашего RecyclerView:

(так как при использовании ConstraintLayout нельзя использовать «match_parent», вместо этого следует использовать «match_constraint», значение которого равно «0dp»).

<android.support.v7.widget.RecyclerView
        android:id="@+id/recyclerViewTransactionList"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintEnd_toEndOf="parent" />

А также попробуйте приведенный ниже код для вашего «textView2» в представлении, которое используется для цели RecyclerView:

<TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="8dp"
        android:text="TextView"
        app:layout_constraintStart_toEndOf="@id/textViewReason"
        app:layout_constraintTop_toTopOf="@+id/textViewReason"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintBottom_toBottomOf="@+id/textViewReason"
        app:layout_constraintHorizontal_bias="1.0" />

Надеюсь, это вам поможет. Счастливое кодирование.

0
ответ дан 15 August 2018 в 17:02
  • 1
    Спасибо за ответ. Это не решило проблему, но увеличило мои знания о ConstraintLayout. – Tarun Baria 14 August 2018 в 12:58
  • 2
    Попробуйте изменить зависимость ConstraintLayout от 1.0.2 до 1.1.2 как «com.android.support.constraint: constraint-layout: 1.1.2». Это может сработать для вас. Спасибо за ответ. – Nitin Gurbani 14 August 2018 в 13:07

Похоже, проблема связана с вашими ограничениями RecyclerView. Не рекомендуется использовать match_parent для Views, содержащегося в ConstraintLayout, как указано в документации. Правильные горизонтальные ограничения для RecyclerView должны выглядеть так:

<android.support.v7.widget.RecyclerView
    android:id="@+id/recyclerViewTransactionList"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginTop="8dp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />
0
ответ дан 15 August 2018 в 17:02

Измените свой последний текстовый вид макета ресайклера на это. Я думаю, проблема здесь.

 <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="8dp"
        android:text="TextView"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

Или вы можете попробовать изменить макет Constraint на любой другой макет, например LinearLayout или Relative. Иногда макет ограничения создает проблему с просмотром ресайзера.

0
ответ дан 15 August 2018 в 17:02
  • 1
    попробовал, и не работал: / – Tarun Baria 13 August 2018 в 15:15
  • 2
    Затем измените constrainLayout. Существует некоторая проблема с компоновкой ограничений, иногда использующая ее в recycler. Однажды у меня была проблема с тем же. Я изменил его на линейный. Это сработает. Или вы можете попробовать с родственником. – Satyajit Das 13 August 2018 в 15:19

Другие вопросы по тегам:

Похожие вопросы: