안녕하세요!
아래 TabMenu에 문제가 있습니다. 아래에 GIF가 게시되어 있는데 작동 방식이 올바르게 작동하지 않습니다. 이 코드에서 작동하는 방법
:
탭 메뉴 android - 올바른 전화 단편이 아님
MainActivity (ViewPager, TabsLayout) -> FragmnetAdapter
의이어야 어떻게 (탭 레이아웃 용) : "홈"(HomeFragment), "역사"(HistoryFragment) "장소"(PlacesFragment)
지금 경우에 그것의 시작 "홈", "Hstory"전화 "장소"
에 "홈"하지만 및 전화 "역사"를 시작 그러나 코드에서 내가 볼 didnt는 몇 가지 문제는 당신이 나를 도울 수 있습니다, :) 제발 여기
코드입니다 :
MainActivity :
public class MainActivity extends AppCompatActivity {
@BindView(R.id.appToolbarMainTabs)
Toolbar appToolbar;
@BindView(R.id.tabLayoutTabs)
TabLayout tabs;
@BindView(R.id.viewPager)
ViewPager viewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
setSupportActionBar(appToolbar);
setupViewPager(viewPager);
tabs.setupWithViewPager(viewPager);
}
// Add Fragments to Tabs
private void setupViewPager(ViewPager viewPager) {
FragmentTabsAdapter adapter = new FragmentTabsAdapter(getSupportFragmentManager());
adapter.addFragment(new HomeFragment(), getString(R.string.home_tab));
adapter.addFragment(new HistoryFragment(), getString(R.string.history_tab));
adapter.addFragment(new PlacesFragment(), getString(R.string.places_tab));
viewPager.setAdapter(adapter);
}}
FragmentAdapter :
public class FragmentTabsAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
public FragmentTabsAdapter(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
public void addFragment(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}}
홈 & 역사 & PlaceFragment 난 그렇게 생각 :)
감사를 많이 필요로하지 않습니다! :)
'PlacesFragment'에서 ProgressDialog를 표시한다고 가정합니다. PagerAdapter가 작동하는 방식은 다음에 스 와이프 할 수있는 조각을 미리로드하므로 'HistoryFragment'로 이동하면 'PlacesFragment'도 생성됩니다. ProgressDialog는 더 이상 사용되지 않는 동작 패턴이므로 View에 ProgressBar를 인라인으로 배치 한 다음로드가 완료된 후 뷰를 전환하는 것이 가장 좋습니다. – AChez9
@ AChez9 예, 맞습니다.하지만 인라인 ProgressBar를 사용하고 싶지 않습니다. 제대로 이해한다면, 그것이 tabMenu의 올바른 작업이라는 것을 슬프게 생각합니까? 내 코드에는 몇 가지 문제가 없다? –