- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已点击此链接来实现 tablayout Android Material Design working with Tabs
现在我做了什么,我使用 fragment 而不是 Activity 进行 tablayout。
下面是代码:-
public class HopitalTabLayoutFragment extends Fragment {
private TabLayout tabLayout;
private ViewPager viewPager;
public HopitalTabLayoutFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_hopital_tab_layout, container, false);
viewPager = (ViewPager)view. findViewById(R.id.viewpager);
setupViewPager(viewPager);
tabLayout = (TabLayout)view. findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
return view;
}
private void setupViewPager(ViewPager viewPager) {
ViewPagerAdapter adapter = new ViewPagerAdapter(getFragmentManager());
adapter.addFragment(new OneFragment(), "ONE");
adapter.addFragment(new TwoFragment(), "TWO");
adapter.addFragment(new ThreeFragment(), "THREE");
viewPager.setAdapter(adapter);
}
class ViewPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
public ViewPagerAdapter(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
public void addFragment(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
}
并从 Activity 添加这个 fragment :-
public class HomeActivityDrawer extends AppCompatActivity {
private Toolbar toolbar;
private NavigationView navigation_view_left, navigation_view_right;
private DrawerLayout drawerLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home_drawer);
drawerLayout = (DrawerLayout) findViewById(R.id.drawer);
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
header = (RelativeLayout) findViewById(R.id.header);
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
fragment = new HopitalTabLayoutFragment();
}
}
这些是我在选项卡布局中使用的三个 fragment :-
public class TwoFragment extends Fragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_two, container, false);
TextView tv = (TextView) view.findViewById(R.id.tv);
tv.setText("DONE");
return view;
}
}
同样是一和三。
现在的问题是第一次加载所有三个 fragment 并且 onCreateView
方法运行但是当我再次打开 tablayout
时只有 fragment 一个启动而不是第二个。这段代码出了什么问题?请帮忙!!
最佳答案
导入 FragmentStatePagerAdapter 而不是 FragmentPagerAdapter。
导入android.support.v4.app.FragmentPagerAdapter;
到导入android.support.v4.app.FragmentStatePagerAdapter;
然后从 FragmentStatePagerAdapter 扩展:ViewPagerAdapter 类扩展了 FragmentPagerAdapter
到类 ViewPagerAdapter 扩展了 FragmentStatePagerAdapter
关于android - 使用 ViewPagerAdapter 在 TabLayout 中未调用 fragment onCreateView 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34413891/
我正在尝试在我的应用程序中实现 Material Design 中的滑动选项卡。找了个教程,照着做了代码。我做了一些更改以在我的应用程序上实现。现在我得到一个 NullPointerException
我正在尝试构建一个简单的音乐播放器,但在方向更改方面遇到问题。我正在使用处理 MediaPlayer 的服务,以便它在后台播放(即使 Activity 不在前台),例如 Google PlayMusi
首先我必须说对不起,我的英语不是很好 我必须在扩展 fragment 中 在顶部添加tablayout和ViewPage 在ViewPageAdapter中添加三个Fragment来切换ViewPag
fragment :- public class HomeProductFragment extends Fragment implements ActionBar.TabListener {
这是我第一次使用 ViewPager,一段时间后它现在可以工作了,我可以在三个不同的 Activity(Main、Scan 和 Options)之间切换。我的问题是访问 Main- 和 ScanAct
应该传递给 ViewPageAdapter 初始化的值是什么? 旧构造函数已弃用。 public ViewPagerAdapter(@NonNull FragmentManager fm) {
我有一个带有两个选项卡的viewpager,每个选项卡都有一个 fragment 。我如何发送额外的 Intent 字符串来表示 FragmentMathematics()?这并不像使用 putExt
我正在使用 ViewPager2,并且在 viewPager2.setAdapter 上收到以下错误: incompatible types: ViewPagerAdapter cannot be c
不知道如何将 onDataChanged 中填充的数组列表发送到被调用以创建新 fragment 以将其与 bundle 对象一起传递的方法 我尝试过修改构造函数以期望它作为参数,并且在构造函数的主体
class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) {
在我的应用程序中,我使用 neokree 的materialtabs 库。我希望我的应用程序支持多种语言,因此我希望选项卡标题支持翻译。但我无法让它发挥作用!ViewPagerAdapter.java
我想开发一个 Android 应用程序,它的 UI 看起来像 Uber 的,但可以预订房间。 我想实现显示选项描述的功能,来自单击底部显示的 PagerSlidingTabStrip 项目的用户。当用
我已点击此链接来实现 tablayout Android Material Design working with Tabs 现在我做了什么,我使用 fragment 而不是 Activity 进行
问这个问题是因为我搜索了几个小时后没有找到解决方案/建议。所有回答的解决方案都带有 Fragment。我在寻找 ViewPagerAdapter 和 FrameLayout。 我的 ViewPager
我是一名优秀的程序员,十分优秀!