Просьба сосредоточиться на просмотре изображения во фрагменте
Я разрабатываю приложение для Android TV
, В приложении есть фрагмент макета, который имеет четыре ImageView
в LinearLayout
горизонтальное направление и RecyclerView
это ниже на LinearLayout
, Когда я запускаю приложение и перемещаюсь по DPAD
контроль тогда RecyclerView
перемещаться вверх и вниз. Требование заключается в том, что при первом запуске фрагмента по умолчанию ImageView
из LinearLayout
будет выбран. После того, как мы нажимаем правую кнопку DPAD, затем следующий ImageView
будет выбран. Когда мы нажимаем клавишу вниз, фокус будет двигаться дальше RecyclerView
, Когда фокус будет на RecyclerView
первый ребенок, и мы нажимаем клавишу "Вверх", затем фокусируемся на первом Imageview
из LinearLayout
,
Я также использую imageview.requestFocus(), но он не работает. Пожалуйста, помогите мне.
Ниже мой файл макета
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/home_fragment_menu_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:layout_marginBottom="10dp">
<ImageView
android:id="@+id/img_playall"
style="@style/home_fragment_menu"
android:src="@drawable/play_all"
android:focusable="true"
android:focusableInTouchMode="true"/>
<ImageView
android:id="@+id/img_trending"
style="@style/home_fragment_menu"
android:src="@drawable/trending"/>
<ImageView
android:id="@+id/img_search"
style="@style/home_fragment_menu"
android:src="@drawable/search"/>
<ImageView
android:id="@+id/img_setting"
style="@style/home_fragment_menu"
android:src="@drawable/settings"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/home_fragment_menu_container"
android:layout_marginLeft="45dp"
>
<android.support.v7.widget.RecyclerView
android:id="@+id/vertical_recyclerview"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</LinearLayout>
</RelativeLayout>
Ниже приведен фрагмент.java файл
public class HomeFragment extends Fragment {
private static final String TAG = "HomeFragment";
ImageView playAllImage, trendingImage, searchImage, settingImage;
Context context;
RecyclerView verticalList;
ArrayList<ArrayList<VideoContentModel>> categoriesVideoList;
ArrayList<CategoryModel> categoryDataList;
public static HomeFragment newInstance(Context context, ArrayList<ArrayList<VideoContentModel>> categoriesVideoList,
ArrayList<CategoryModel> categoryDataList){
HomeFragment fragment = new HomeFragment();
fragment.context = context;
fragment.categoriesVideoList = categoriesVideoList;
fragment.categoryDataList = categoryDataList;
return fragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.home_fragment_layout, container, false);
playAllImage = (ImageView)view.findViewById(R.id.img_playall);
trendingImage = (ImageView)view.findViewById(R.id.img_trending);
searchImage = (ImageView)view.findViewById(R.id.img_search);
settingImage = (ImageView)view.findViewById(R.id.img_setting);
playAllImage.requestFocus();
verticalList = (RecyclerView)view.findViewById(R.id.vertical_recyclerview);
verticalList.setHasFixedSize(true);
verticalList.setLayoutManager(new LinearLayoutManager(context));
CatListVerticalAdapter adapter = new CatListVerticalAdapter(context,categoriesVideoList,categoryDataList);
verticalList.setAdapter(adapter);
verticalList.clearFocus();
//
if(playAllImage.hasFocus())
Log.i(TAG,"play all has focus");
else
Log.i(TAG,"===playall has not focus");
return view;
}
Как мы перемещаемся через DPAD выше требования? Пожалуйста, помогите мне..