Give up navigation

pull/137/head
FongMi 4 years ago
parent 27295026dc
commit 79b2f6e475
  1. 2
      app/build.gradle
  2. 40
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java
  3. 5
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/HomeFragment.java
  4. 4
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java
  5. 4
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.java
  6. 5
      app/src/mobile/res/layout/activity_main.xml
  7. 22
      app/src/mobile/res/navigation/nav_graph.xml

@ -74,8 +74,6 @@ dependencies {
implementation 'org.nanohttpd:nanohttpd:2.3.1'
implementation('org.simpleframework:simple-xml:2.7.1') { exclude group: 'stax', module: 'stax-api' exclude group: 'xpp3', module: 'xpp3' }
leanbackImplementation 'androidx.leanback:leanback:1.2.0-alpha02'
mobileImplementation 'androidx.navigation:navigation-fragment:2.5.2'
mobileImplementation 'androidx.navigation:navigation-ui:2.5.2'
annotationProcessor 'androidx.room:room-compiler:2.4.3'
annotationProcessor 'com.github.bumptech.glide:compiler:4.13.2'
}

@ -2,17 +2,26 @@ package com.fongmi.android.tv.ui.activity;
import android.app.Activity;
import android.content.Intent;
import android.view.MenuItem;
import androidx.navigation.fragment.NavHostFragment;
import androidx.navigation.ui.NavigationUI;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.viewbinding.ViewBinding;
import com.fongmi.android.tv.R;
import com.fongmi.android.tv.databinding.ActivityMainBinding;
import com.fongmi.android.tv.ui.fragment.HomeFragment;
import com.fongmi.android.tv.ui.fragment.SettingFragment;
import com.fongmi.android.tv.ui.fragment.VodFragment;
import com.google.android.material.navigation.NavigationBarView;
public class MainActivity extends BaseActivity {
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends BaseActivity implements NavigationBarView.OnItemSelectedListener {
private ActivityMainBinding mBinding;
private List<Fragment> mFragments;
public static void start(Activity activity) {
activity.startActivity(new Intent(activity, MainActivity.class));
@ -26,11 +35,32 @@ public class MainActivity extends BaseActivity {
@Override
protected void initView() {
NavHostFragment fragment = (NavHostFragment) getSupportFragmentManager().findFragmentById(R.id.container);
NavigationUI.setupWithNavController(mBinding.navigation, fragment.getNavController());
mFragments = new ArrayList<>();
mFragments.add(HomeFragment.newInstance());
mFragments.add(VodFragment.newInstance());
mFragments.add(SettingFragment.newInstance());
for (Fragment fragment : mFragments) getSupportFragmentManager().beginTransaction().add(R.id.container, fragment).hide(fragment).commit();
}
@Override
protected void initEvent() {
mBinding.navigation.setOnItemSelectedListener(this);
}
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.home:
getSupportFragmentManager().beginTransaction().show(mFragments.get(0)).hide(mFragments.get(1)).hide(mFragments.get(2)).commit();
return true;
case R.id.vod:
getSupportFragmentManager().beginTransaction().show(mFragments.get(1)).hide(mFragments.get(0)).hide(mFragments.get(2)).commit();
return true;
case R.id.setting:
getSupportFragmentManager().beginTransaction().show(mFragments.get(2)).hide(mFragments.get(0)).hide(mFragments.get(1)).commit();
return true;
default:
return false;
}
}
}

@ -18,7 +18,6 @@ import com.fongmi.android.tv.ui.activity.BaseFragment;
import com.fongmi.android.tv.ui.adapter.HistoryAdapter;
import com.fongmi.android.tv.ui.adapter.VodAdapter;
import com.fongmi.android.tv.ui.custom.SpaceItemDecoration;
import com.google.android.exoplayer2.util.Log;
public class HomeFragment extends BaseFragment implements VodAdapter.OnClickListener, HistoryAdapter.OnClickListener {
@ -27,6 +26,10 @@ public class HomeFragment extends BaseFragment implements VodAdapter.OnClickList
private SiteViewModel mViewModel;
private VodAdapter mVodAdapter;
public static HomeFragment newInstance() {
return new HomeFragment();
}
@Override
protected ViewBinding getBinding(@NonNull LayoutInflater inflater, @Nullable ViewGroup container) {
return mBinding = FragmentHomeBinding.inflate(inflater, container, false);

@ -44,6 +44,10 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
private FragmentSettingBinding mBinding;
public static SettingFragment newInstance() {
return new SettingFragment();
}
@Override
protected ViewBinding getBinding(@NonNull LayoutInflater inflater, @Nullable ViewGroup container) {
return mBinding = FragmentSettingBinding.inflate(inflater, container, false);

@ -14,6 +14,10 @@ public class VodFragment extends BaseFragment {
private FragmentVodBinding mBinding;
public static VodFragment newInstance() {
return new VodFragment();
}
@Override
protected ViewBinding getBinding(@NonNull LayoutInflater inflater, @Nullable ViewGroup container) {
return mBinding = FragmentVodBinding.inflate(inflater, container, false);

@ -7,12 +7,9 @@
<androidx.fragment.app.FragmentContainerView
android:id="@+id/container"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/navigation"
app:defaultNavHost="true"
app:navGraph="@navigation/nav_graph" />
android:layout_above="@+id/navigation" />
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/navigation"

@ -1,22 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/nav_graph"
app:startDestination="@id/home">
<fragment
android:id="@+id/home"
android:name="com.fongmi.android.tv.ui.fragment.HomeFragment"
android:label="@string/nav_home" />
<fragment
android:id="@+id/vod"
android:name="com.fongmi.android.tv.ui.fragment.VodFragment"
android:label="@string/nav_vod" />
<fragment
android:id="@+id/setting"
android:name="com.fongmi.android.tv.ui.fragment.SettingFragment"
android:label="@string/nav_setting" />
</navigation>
Loading…
Cancel
Save