Нажмите стрелку, чтобы открыть больше контента в приложении - PullRequest
0 голосов
/ 17 ноября 2018

Я пытаюсь добиться такого поведения, когда пользователь нажимает стрелку, которая может раскрыть больше контента, например, больше описания прервет что-либо Он также может просмотреть переработчик, где можно динамически добавлять больше вещей, и список будет расширяться. Прямо сейчас я не представляю, как этого достичь. Я попытался найти решения в Интернете и увидел виджет под названием spinner, но я не думаю, что он поможет мне достичь желаемого поведения. YouTube также применяет подобное поведение

Ниже приведены картинки, которые прояснят мой вопрос. Любая помощь будет оценена Спасибо

Перед нажатием на стрелку рис. 1

После нажатия на стрелку рис 2

Ответы [ 2 ]

0 голосов
/ 17 ноября 2018

Я использовал для этой цели ExpandbleLayout из этой библиотеки github ExpandableLayout . В readMe репозитория github вы можете найти пример его использования, вы можете получить такой же опыт, как и в вашем примере, без необходимости вручную создавать View для стрелки и обрабатывать анимацию. Вы можете использовать это так:

<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">

<com.github.aakira.expandablelayout.ExpandableRelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:ael_expanded="true"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Some text goes here"
        android:textSize="28sp" />
</com.github.aakira.expandablelayout.ExpandableRelativeLayout>

И в вашем коде java / kotlin: выполните дополнительную логику, чтобы развернуть / свернуть вызов: expandableLayout.toggle();.

Вся заслуга принадлежит автору библиотеки. https://github.com/AAkira/ExpandableLayout

0 голосов
/ 17 ноября 2018

В вашем layout.xml включите вложенный макет, включающий Textview, который содержит дополнительную информацию, и установите android:visibility="gone".Используйте OnClickListener для кнопки, которая предназначена для расширения представления.В методе onClick проверьте, является ли представление видимым или нет.Если это не так, вы делаете это видимым, иначе вы устанавливаете его снова.макет:

...
    <ImageView
        android:id="@+id/chevron"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@android:drawable/chevron"
        />

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="your additional info here" 
        android:visibility="gone"/>
...

В вашей активности:

ImageView yourView = findViewById(R.id.chevron);

..

yourView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (view.getVisibility() == View.Gone) {
                    view.setVisibility(View.Visible);
                } else {
                    view.setVisibility(View.Gone);
                }
            }
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...