在ListView Android

时间:2015-05-27 05:42:38

标签: android android-cardview

我想点击列表项(垂直)并在列表顶部打开RecycleView / CardView,列表在水平CardView后面变暗或淡化。 OnItemClicked,我为卡片启动了一项新活动。这有效,但我希望它浮动在我的列表顶部垂直居中。

以下是适用于单独的代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="${relativePackage}.${activityClass}"
    android:layout_margin="@dimen/hourly_layout_margin"
    android:animateLayoutChanges="true">

此处使用listView进行布局,并且我希望card_view_container在选中列表中的项目时位于顶部

<!-- layouts invisible or visible depending whether user chose to view details -->
<RelativeLayout
    android:id="@+id/card_view_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_centerInParent="true"
    android:backgroundTint="@color/bright_foreground_inverse_material_light">
    <FrameLayout
        android:id="@+id/vg_cover"
        android:layout_width="200dp"
        android:layout_height="match_parent"
        android:layout_centerInParent="true"
        tools:ignore="UselessParent"/>
</RelativeLayout>

单击listView行:

@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
                        long id) {
    Intent intent = new Intent(getActivity(), HourlyDetailsActivity.class);
    intent.putExtra("POSITION", position);
    startActivity(intent);
}

但这取代了原来的布局,我希望它褪色......就像叠加层一样。

2 个答案:

答案 0 :(得分:1)

实施浮动活动

在AndroidManifest.xml中

<activity
    android:name=".FloatingActivity"
    android:label="@string/title_activity_floating"
    <!-- Use Translucent theme to get transparent activity background 
     and NoTitleBar to avoid super old style title bar ;) -->
    android:theme="@android:style/Theme.Translucent.NoTitleBar">
</activity>

答案 1 :(得分:0)

你可以使用动画来实现..

fade_in.xml

<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
           android:interpolator="@android:anim/accelerate_interpolator"
           android:fromAlpha="0.0" android:toAlpha="1.0"
           android:duration="500" />

fade_out.xml

<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
           android:interpolator="@android:anim/accelerate_interpolator"
           android:fromAlpha="1.0" android:toAlpha="0.0"
           android:fillAfter="true"
           android:duration="500" />

现在只需在活动交易上应用此动画。

Intent i = new Intent(this, HourlyDetailsActivity.class);
startActivity(i);
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);