Smi*_*ler 12 android android-cardview android-5.0-lollipop
在最新的Android SDK中我们现在有了新的CardView,我用新版本替换了我的旧版CustomCardView,但是在旧版本的Android上运行时,我看到state_pressed&state_focused丑陋的正方形显示在CardView上方...
有没有人知道如何在新的CardView中模拟以下内容,但仅限于使用旧版本的Android?
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:enterFadeDuration="150"
android:exitFadeDuration="150" >
<item android:state_pressed="true"
android:drawable="@drawable/card_on_press"/>
<item android:state_focused="true" android:state_enabled="true"
android:drawable="@drawable/card_on_focus"/>
<item android:state_enabled="true"
android:drawable="@drawable/card_default"/>
<item android:state_enabled="false"
android:drawable="@drawable/card_on_press"/>
</selector>
Run Code Online (Sandbox Code Playgroud)
对于那些您感兴趣的人,我现在正在使用的是CardView:
<android.support.v7.widget.CardView
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/CardView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"
android:foreground="?android:attr/selectableItemBackground"
android:onClick="RunSomeMethod"
card_view:cardCornerRadius="4dp"
android:focusable="true"
android:elevation="2dp">
<LinearLayout
android:id="@+id/LinearLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:focusable="false"
android:visibility="visible">
</LinearLayout>
</android.support.v7.widget.CardView>
Run Code Online (Sandbox Code Playgroud)
Smi*_*ler 14
修复了以下代码:
值-V21\styles.xml:
<style name="CardViewStyle" parent="CardView.Light">
<item name="android:foreground">?android:attr/selectableItemBackground</item>
</style>
Run Code Online (Sandbox Code Playgroud)
值\ styles.xml:
<style name="CardViewStyle" parent="android:Widget.TextView">
<item name="android:foreground">@drawable/card</item>
</style>
Run Code Online (Sandbox Code Playgroud)
layout\main_layout.xml中的一张卡片:
<android.support.v7.widget.CardView
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/Card_View"
style="@style/CardViewStyle"
android:layout_width="480dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"
card_view:cardCornerRadius="4dp"
android:elevation="2dp">
Run Code Online (Sandbox Code Playgroud)
这将允许您在v21 +中提供动画,但也可以在v21之前提供替代动画,而不是大蓝/灰色方块.
这是我用作感兴趣的人的card.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:enterFadeDuration="150"
android:exitFadeDuration="150" >
<item android:state_pressed="true"
android:drawable="@drawable/card_on_press"/>
<item android:state_focused="true" android:state_enabled="true"
android:drawable="@drawable/card_on_focus"/>
<item android:state_enabled="true"
android:drawable="@drawable/card_default"/>
<item android:state_enabled="false"
android:drawable="@drawable/card_on_press"/>
</selector>
Run Code Online (Sandbox Code Playgroud)
注意:Drawable默认将作为透明项目正常,因为CardView为所有Android版本提供默认背景.
| 归档时间: |
|
| 查看次数: |
14070 次 |
| 最近记录: |