Fixed focus bug in new ImageCardView
b/22955551
ImageCardViewStyle had focusable defined
in style which caused all it's children
to also get set focusable=true. Thus the
VerticalGridFragment didn't know what to
set focused or not. The ImageCardView is
not set focusable in code.
Change-Id: Id8c427d86042a24d0f8c88b7adc04fb997108e6e
diff --git a/v17/leanback/res/values/styles.xml b/v17/leanback/res/values/styles.xml
index ce0984c..4e0b411 100644
--- a/v17/leanback/res/values/styles.xml
+++ b/v17/leanback/res/values/styles.xml
@@ -101,8 +101,6 @@
<item name="cardType">infoUnder</item>
<item name="infoVisibility">activated</item>
<item name="android:background">@color/lb_basic_card_bg_color</item>
- <item name="android:focusable">true</item>
- <item name="android:focusableInTouchMode">true</item>
<!-- In order to keep backward compatibility we have to create an icon on right. -->
<item name="lbImageCardViewType">Title|Content|IconOnRight</item>
<item name="lbImageCardViewImageStyle">@style/Widget.Leanback.ImageCardView.ImageStyle</item>
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/ImageCardView.java b/v17/leanback/src/android/support/v17/leanback/widget/ImageCardView.java
index 68e976d..5ba80c3 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/ImageCardView.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/ImageCardView.java
@@ -164,6 +164,10 @@
}
private void buildImageCardView(int styleResId) {
+ // Make sure the ImageCardView is focusable.
+ setFocusable(true);
+ setFocusableInTouchMode(true);
+
LayoutInflater inflater = LayoutInflater.from(getContext());
inflater.inflate(R.layout.lb_image_card_view, this);
TypedArray cardAttrs = getContext().obtainStyledAttributes(styleResId, R.styleable.lbImageCardView);