通过单击列表项显示更多信息

时间:2018-08-05 16:46:33

标签: java android user-interface

我不太确定怎么称呼它,所以我拍了张照片。

我想显示一个用户列表,当某人单击其中一个时,一些详细信息应显示在下面。再次单击它应该再次隐藏。理想情况下,带有一些滑动动画。它不应覆盖列表的其余部分,因此其他所有内容也必须向下移动。

希望您能理解我的意思。

有人可以告诉我我应该用google搜索还是举个例子?

enter image description here

5 个答案:

答案 0 :(得分:2)

此库可帮助您确定查询。请检查。让我知道您的想法。

FoldingCell是一种材料设计,用于扩展内容单元格,其灵感来自于@Ramotion https://github.com/Ramotion/folding-cell-android

制成的折叠纸质材料

答案 1 :(得分:0)

如果您使用的是RecyclerView,则只能在适配器中使用不同的视图类型:https://stackoverflow.com/a/26245463/10183396

这将为您提供滑动动画

答案 2 :(得分:0)

我认为您可以出于自己的目的使用ExpandableListView。 http://theopentutorials.com/tutorials/android/listview/android-expandable-list-view-example/ 通常,它用于更复杂的目标,但认为可以。

答案 3 :(得分:0)

这可以通过将详细布局的可见性设置为GONE来实现,并且在单击条目时将其切换到VISIBILE,依此类推

对于动画,在您的视口布局XML文件中

<LinearLayout android:id="@+id/container"
    android:animateLayoutChanges="true"
    ...
/>

答案 4 :(得分:0)

使用FlipView

dependencies {
    // other dependancies 
    implementation 'eu.davidea:flipview:1.1.3'

}

activity_main.xml

  <eu.davidea.flipview.FlipView
        android:id="@+id/flip_layout"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        app:animateDesignLayoutOnly="true"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <android.support.v7.widget.RecyclerView
            android:id="@+id/recycler_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>

        <!--You use ListView-->
        <!--<ListView-->
        <!--android:id="@+id/list_view"-->
        <!--android:layout_width="match_parent"-->
        <!--android:layout_height="wrap_content"/>-->

        <fragment
            android:id="@+id/fragment_item_detail"
            android:name="com.lelasoft.recyclerviewwithitemdetail.ItemDetailsFragment"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>
    </eu.davidea.flipview.FlipView>

翻转逻辑

@Override
public void onFlipAction(String item) {
    if (flipView.isFlipped())
        flipView.flip(false);
    else {
        flipView.flip(true);
        itemDetailsFragment.updateItemDetails(item);
    }
}

@Override
public void onBackPressed() {
    if (flipView.isFlipped())
        flipView.flip(false);
    else
        super.onBackPressed();
}

Github上查看完整的示例