Я экспериментирую с созданием гибридного приложения для Android на основе нижних вкладок и 3 веб-просмотров в разных фрагментах.
Это мой код активности:
public class MainActivity extends AppCompatActivity {
private AHBottomNavigation bottomNavigation;
private ArrayList<AHBottomNavigationItem> bottomNavigationItems = new ArrayList<>();
RelativeLayout rlOne, rlTwo, rlThree;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViews();
}
private void findViews() {
rlOne = findViewById(R.id.rlOne);
rlTwo = findViewById(R.id.rlTwo);
rlThree = findViewById(R.id.rlThree);
bottomNavigation = findViewById(R.id.bottom_navigation);
// Create items
AHBottomNavigationItem item1 = new AHBottomNavigationItem(R.string.tab_1, R.drawable.ic_apps_white_36dp, R.color.color_tab_1);
AHBottomNavigationItem item2 = new AHBottomNavigationItem(R.string.tab_2, R.drawable.ic_store_white_36dp, R.color.color_tab_2);
AHBottomNavigationItem item3 = new AHBottomNavigationItem(R.string.tab_3, R.drawable.ic_live_help_white_36dp, R.color.color_tab_3);
// Add items
bottomNavigation.addItem(item1);
bottomNavigation.addItem(item2);
bottomNavigation.addItem(item3);
bottomNavigation.addItems(bottomNavigationItems);
bottomNavigation.setTranslucentNavigationEnabled(true);
bottomNavigation.setCurrentItem(0);
bottomNavigation.setOnTabSelectedListener(new AHBottomNavigation.OnTabSelectedListener() {
@Override
public boolean onTabSelected(int position, boolean wasSelected) {
if (!wasSelected) {
rlOne.setVisibility(View.GONE);
rlTwo.setVisibility(View.GONE);
rlThree.setVisibility(View.GONE);
switch (position) {
case 0:
rlOne.setVisibility(View.VISIBLE);
break;
case 1:
rlTwo.setVisibility(View.VISIBLE);
break;
case 2:
rlThree.setVisibility(View.VISIBLE);
break;
default:
rlOne.setVisibility(View.VISIBLE);
break;
}
}
return true;
}
});
}
}
И это кододного фрагмента:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_item_one, container, false);
toolbar = view.findViewById(R.id.toolbar);
tvTitle = view.findViewById(R.id.tvTitle);
((AppCompatActivity) getActivity()).getSupportActionBar();
tvTitle.setText(R.string.tab_1);
webview = view.findViewById(R.id.webview);
progress = view.findViewById(R.id.progress);
webview.setListener(getActivity(), this);
webview.loadUrl("https://ekaneskratisi.gr/mobile/");
webview.setWebChromeClient(new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, int newProgress) {
super.onProgressChanged(view, newProgress);
if (progress != null) {
progress.setProgress(newProgress);
if (newProgress == 100) {
progress.setVisibility(View.GONE);
} else {
progress.setVisibility(View.VISIBLE);
}
}
}
});
webview.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
//This is the filter
if (event.getAction()!=KeyEvent.ACTION_DOWN)
return true;
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (webview.canGoBack()) {
webview.goBack();
} else {
((MainActivity)getActivity()).onBackPressed();
}
return true;
}
return false;
}
});
return view;
Поэтому мне нужна вкладка для обновления каждые 5 секунд, когда она скрыта.Я читал некоторые другие решения, но до сих пор не могу это сделать ..
Есть идеи?