Android-L CardView 비주얼 터치 피드백
아무도 CardView 내에서 Google I / O 2014에서 시연 된 시각적 터치 피드백 중 일부를 구현하는 방법을 설명 할 수 있습니다.
XML에서 CardView를 사용하는 방법은 다음과 같습니다. 내가 놓친 작은 것이있을 수 있으므로 누군가 나를 도울 수 있는지 궁금했습니다.
<!-- A CardView -->
<android.support.v7.widget.CardView
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/CardView_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"
card_view:cardCornerRadius="4dp"
android:elevation="2dp">
<LinearLayout
android:id="@+id/LinearLayout_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:onClick="RunSomeMethod"">
<!-- Main CardView Content In Here-->
</LinearLayout> </android.support.v7.widget.CardView>
API 11 이상 :
요소에 추가 android:foreground="?android:attr/selectableItemBackground"
하십시오 CardView
.
API 9 이상 :
요소에 추가 android:foreground="?selectableItemBackground"
하십시오 CardView
.
편집 : 터치 포인트가 아닌 중앙에서 발생하는 잔물결이 알려진 버그이며 수정되었습니다 .
에 선택을 그리려면 사전 롤리팝 및 사후 롤리팝은 정확하게 다음과 같은 방법을 사용할 수 있습니다 (아이디어가 사용하는 삽입 과 선택의 당김 둥근 - 용도의 사용자 정의 색상 아래 샘플, 기본적으로 변경할 수 있습니다 사전 롤리팝에 대한 모서리) :
android:foreground="@drawable/card_foreground"
롤리팝 이후
drawable-v21 / card_foreground.xml
<ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="#20000000"
android:drawable="@drawable/card_foreground_selector" />
drawable-v21 / card_foreground_selector.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape android:shape="rectangle">
<solid android:color="#18000000"/>
</shape>
</item>
<item android:state_focused="true" android:state_enabled="true">
<shape android:shape="rectangle">
<solid android:color="#0f000000"/>
</shape>
</item>
</selector>
사전 롤리팝
drawable / card_foreground.xml (카드 높이에 따라 삽입 값을 조정해야 함)
<inset xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/card_foreground_selector"
android:insetLeft="2dp"
android:insetRight="2dp"
android:insetTop="4dp"
android:insetBottom="4dp"/>
드로어 블 /card_foreground_selector.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape android:shape="rectangle">
<solid android:color="#18000000"/>
<corners android:radius="@dimen/card_radius" />
</shape>
</item>
<item android:state_focused="true" android:state_enabled="true">
<shape android:shape="rectangle">
<solid android:color="#0f000000"/>
<corners android:radius="@dimen/card_radius" />
</shape>
</item>
</selector>
이것은 내 경우에 도움이되었습니다.
배경:
찬성 하는 CardView
무시 android:background
는 app:cardBackground
색상 만 가능합니다. 테두리와 그림자는 사실 배경의 일부이므로 직접 설정할 수 없습니다.
해결책:
Make the layout inside the CardView
clickable instead of the card itself. You already wrote both attributes needed for this layout:
android:clickable="true"
android:background="?android:selectableItemBackground"
Here is my solution. It uses ripple for lollipop+ and static foreground for pre-lollipop devices.
<android.support.v7.widget.CardView
...
android:foreground="?android:attr/selectableItemBackground">
참고URL : https://stackoverflow.com/questions/24475150/android-l-cardview-visual-touch-feedback
'IT박스' 카테고리의 다른 글
--all-databases 덤프에서 단일 데이터베이스 가져 오기 (0) | 2020.11.20 |
---|---|
CodeIgniter Active Record-반환 된 행 수 가져 오기 (0) | 2020.11.19 |
스낵바가 자동으로 닫 혔을 때 어떻게 알림을받을 수 있습니까? (0) | 2020.11.19 |
SQLite-ORDER BY RAND () (0) | 2020.11.19 |
환경 변수를 설정하는 쉘 스크립트 (0) | 2020.11.19 |