Home | History | Annotate | Download | only in widget
      1 /*
      2  * Copyright (C) 2014 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
      5  * in compliance with the License. You may obtain a copy of the License at
      6  *
      7  * http://www.apache.org/licenses/LICENSE-2.0
      8  *
      9  * Unless required by applicable law or agreed to in writing, software distributed under the License
     10  * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
     11  * or implied. See the License for the specific language governing permissions and limitations under
     12  * the License.
     13  */
     14 package androidx.leanback.widget;
     15 
     16 import android.content.Context;
     17 import android.util.AttributeSet;
     18 import android.view.LayoutInflater;
     19 import android.view.ViewGroup;
     20 import android.widget.LinearLayout;
     21 
     22 import androidx.leanback.R;
     23 
     24 /**
     25  * ListRowView is a {@link android.view.ViewGroup} which always contains a
     26  * {@link HorizontalGridView}, and may optionally include a hover card.
     27  */
     28 public final class ListRowView extends LinearLayout {
     29 
     30     private HorizontalGridView mGridView;
     31 
     32     public ListRowView(Context context) {
     33         this(context, null);
     34     }
     35 
     36     public ListRowView(Context context, AttributeSet attrs) {
     37         this(context, attrs, 0);
     38     }
     39 
     40     public ListRowView(Context context, AttributeSet attrs, int defStyle) {
     41         super(context, attrs, defStyle);
     42 
     43         LayoutInflater inflater = LayoutInflater.from(context);
     44         inflater.inflate(R.layout.lb_list_row, this);
     45 
     46         mGridView = (HorizontalGridView) findViewById(R.id.row_content);
     47         // since we use WRAP_CONTENT for height in lb_list_row, we need set fixed size to false
     48         mGridView.setHasFixedSize(false);
     49 
     50         // Uncomment this to experiment with page-based scrolling.
     51         // mGridView.setFocusScrollStrategy(HorizontalGridView.FOCUS_SCROLL_PAGE);
     52 
     53         setOrientation(LinearLayout.VERTICAL);
     54         setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS);
     55     }
     56 
     57     /**
     58      * Returns the HorizontalGridView.
     59      */
     60     public HorizontalGridView getGridView() {
     61         return mGridView;
     62     }
     63 
     64 }
     65