gpt4 book ai didi

android - 如何将 ViewPager 放入 fragment 中?

转载 作者:行者123 更新时间:2023-11-29 00:14:59 24 4
gpt4 key购买 nike

我的 Intent 是将带有 2 个选项卡的 ViewPager 放入 fragment 中。如果不可能,请告诉我替代方案...但我更愿意使用 ViewPager,因为选项卡之间的滑动效果。

谢谢。

最佳答案

选项 #1:使用嵌套 fragment 。这将要求您将 minSdkVersion 设置为 17 或更高,否则您将不得不使用 Android 支持包中的 fragment 向后移植。 This sample app演示如何使用反向端口。

简而言之,托管 ViewPager 的 fragment 会将 getChildFragmentManager() 传递给您的 FragmentPagerAdapterFragmentStatePagerAdapter :

/***
Copyright (c) 2012 CommonsWare, LLC
Licensed under the Apache License, Version 2.0 (the "License"); you may not
use this file except in compliance with the License. You may obtain a copy
of the License at http://www.apache.org/licenses/LICENSE-2.0. Unless required
by applicable law or agreed to in writing, software distributed under the
License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
OF ANY KIND, either express or implied. See the License for the specific
language governing permissions and limitations under the License.

From _The Busy Coder's Guide to Android Development_
http://commonsware.com/Android
*/

package com.commonsware.android.pagernested;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class PagerFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container,
Bundle savedInstanceState) {
View result=inflater.inflate(R.layout.pager, container, false);
ViewPager pager=(ViewPager)result.findViewById(R.id.pager);

pager.setAdapter(buildAdapter());

return(result);
}

private PagerAdapter buildAdapter() {
return(new SampleAdapter(getActivity(), getChildFragmentManager()));
}
}

选项 #2:编写您自己的 PagerAdapter,它不使用 fragment (或者其中的任何内容都由 fragment 管理)。然后,您不再需要嵌套 fragment ,只需将自定义 PagerAdapter 与 fragment 托管的 ViewPager 一起使用即可。

关于android - 如何将 ViewPager 放入 fragment 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27434019/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com