小编Ale*_*tov的帖子

FragmentPagerAdapter和FragmentStatePagerAdapter有什么区别?

FragmentPagerAdapter和之间有什么区别FragmentStatePagerAdapter

关于FragmentPagerAdapterGoogle的指南说:

此版本的寻呼机最适合在有少量通常更多静态片段进行分页时使用,例如一组选项卡.用户访问的每个页面的片段将保留在内存中,但其视图层次结构可能在不可见时被销毁.这可能导致使用大量内存,因为片段实例可以保持任意数量的状态.对于较大的页面集,请考虑FragmentStatePagerAdapter.

关于FragmentStatePagerAdapter:

当存在大量页面时,此版本的寻呼机更有用,更像列表视图.当页面对用户不可见时,它们的整个片段可能被破坏,只保留该片段的保存状态.与FragmentPagerAdapter在页面之间切换时可能更多的开销相比,这允许寻呼机保持与每个被访问页面相关联的更少的存储器 .

所以我只有3个片段.但它们都是具有大量数据的独立模块.

Fragment1处理一些数据(用户输入)并通过活动传递给它Fragment2,这很简单ListFragment.Fragment3也是一个ListFragment.

所以我的问题是:我应该使用哪种适配器?FragmentPagerAdapter还是FragmentStatePagerAdapter

android android-fragments android-viewpager fragmentpageradapter fragmentstatepageradapter

357
推荐指数
5
解决办法
11万
查看次数

如何更改CollapsingToolbarLayout字体和大小?

我想改变CollapsingToolbarLayout字体大小和字体.我怎么能做到这一点?

在此输入图像描述

fonts android toolbar font-size android-collapsingtoolbarlayout

80
推荐指数
8
解决办法
5万
查看次数

Roboto字体是否适用于Android 4+?

如果我的应用程序仅支持Android 4+设备,是否需要使用Roboto字体并将其放入资产文件夹?

我非常感谢你的帮助.亚历克斯.PS抱歉我的英文:)

fonts android assets android-4.0-ice-cream-sandwich

20
推荐指数
2
解决办法
3万
查看次数

在哪里调用getChildFragmentManager()?

问题

根据谷歌的文档:

您现在可以将片段嵌入片段中.这对于您希望将动态和可重用UI组件放入自身动态且可重用的UI组件的各种情况都很有用.例如,如果使用ViewPager创建向左和向右滑动并占用大部分屏幕空间的片段,则现在可以将片段插入到每个片段页面中.要嵌套片段,只需在要添加片段的片段上调用getChildFragmentManager().这将返回一个FragmentManager,您可以像通常从顶级活动那样使用它来创建片段事务.例如,这里有一些代码可以在现有的Fragment类中添加一个片段:

Fragment videoFragment = new VideoPlayerFragment();
FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
transaction.add(R.id.video_fragment, videoFragment).commit();
Run Code Online (Sandbox Code Playgroud)

所以我(例如)TestFragment看起来像:

public class TestFragment extends Fragment {

    private View mFragmentView;
    private FrameLayout mFrameLayout;   

    public HistoryFragment() {
        super();
    }       

    @Override   
    public View onCreateView(LayoutInflater pInflater, ViewGroup pViewGroup, Bundle pBundle) {          

        mFragmentView = pInflater.inflate(R.layout.fragment_layout, pViewGroup, false);         

        mFrameLayout = (FrameLayout) mFragmentView.findViewById(R.id.framelayout);

        return mFragmentView;
    }   

    public void onDestroyView() {
        super.onDestroyView();
    }    

    /* ISSUE */
    public void doSomethingSpecial() {
        FragmentManager tFragmentManager = getChildFragmentManager();
    }
}
Run Code Online (Sandbox Code Playgroud)

MainActivity我初始化我的片段像:

mTestFragment = …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-viewpager fragmentmanager android-nested-fragment

10
推荐指数
1
解决办法
2万
查看次数

如何使用PagerAdapter替换ViewPager中的Fragment?

我的问题

我用a ViewPager来显示一个片段FragmentActivity.ViewPager从附件中获取片段FragmentPagerAdapter.

mViewPager = (ViewPager) findViewById(R.id.view_pager);       
mAdapter = new HomePagerAdapter(getSupportFragmentManager());    
mViewPager.setAdapter(mAdapter);
Run Code Online (Sandbox Code Playgroud)

假设ViewPager有3个片段来显示:Fragment1,Fragment2,Fragment3.Fragment1是网格片段并显示网格.Fragment2Fragment3有自己的内容来展示.当使用在屏幕上滑动时,ViewPager将显示下一个片段 - Fragment2.等等.

我想要的是?

我想要的是,当Fragment1点击网格中的一个项目(由...显示)时,Fragment1应该完全替换为其他一些片段,比如说Fragment4(这是不同的片段,连接的适配器不会返回).用户将Fragment4ButtonBack点击之后(仅按钮旁边Fragment4)工作,Fragment1并且应该再次显示网格.同时ViewPager应该表现相同,即在滑动时,Fragment2将显示下一个片段(在我们的例子中).

所以我只想获得与示例相同的行为:http: //developer.android.com/training/basics/fragments/fragment-ui.html#Replace

我的问题

那么,这有可能实现吗?如果是,那该怎么办?我非常感谢你的帮助.亚历克斯.PS抱歉我的英文:)

android replace android-fragments android-viewpager fragmentpageradapter

9
推荐指数
2
解决办法
9170
查看次数

如何在Google Keep应用程序中制作GridView动画?

我的问题

GridView在我的申请中使用.GridView有非常简单的细胞:只有两个TextView.当用户点击该按钮时ActionBar,会Dialog打开.他可以在这里制作一个新的细胞.我使用此代码更新我的GridView:

mNotesAdapter.notifyDataSetChanged();
Run Code Online (Sandbox Code Playgroud)

而且效果很好.但新电池立即弹出.而另一个只是改变了他们的立场.我想实现动画效果,它看起来像Google Keep效果.

> 在Google Play商店中查看Google Keep.

我的问题

可能吗?请分享一些链接或一些知识.

我非常感谢你的帮助.亚历克斯.PS抱歉我的英文:)

animation android android-animation android-gridview

7
推荐指数
0
解决办法
4271
查看次数

带有嵌套片段的ViewPager?

我的问题

根据谷歌的文档:

您现在可以将片段嵌入片段中.这对于您希望将动态和可重用UI组件放入自身动态且可重用的UI组件的各种情况都很有用.例如,如果使用ViewPager创建 向左和向右滑动并占用大部分屏幕空间的 片段,则现在可以将片段插入到每个片段页面中.要嵌套片段,只需在要添加片段的片段上调用getChildFragmentManager().这将返回一个FragmentManager,您可以像通常从顶级活动那样使用它来创建片段事务.例如,这里有一些代码可以在现有的Fragment类中添加一个片段:

Fragment videoFragment = new VideoPlayerFragment();
FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
transaction.add(R.id.video_fragment, videoFragment).commit();
Run Code Online (Sandbox Code Playgroud)

所以我创造了自己的PageFragment.而我PageFragmentAdapter的3页PageFragment.我还有6个片段:Fragment1,Fragment2,Fragment3,FragmentA,FragmentB,FragmentC.在我的MainActivity初始化我的六个片段,我ViewPager和它PageFragmentAdapter(它PageFragment自己初始化三个).

然后,我用这个方法来附上我的Fragment1,Fragment2,Fragment3每个页面(每个PageFragment的)PageFragmentAdapter:

PageFragmentAdapter tPageFragmentAdapter = new PageFragmentAdapter(getSupportFragmentManager());
tPageFragmentAdapter.setFirstPage(tFragment1);
tPageFragmentAdapter.setSecondPage(tFragment2);
tPageFragmentAdapter.setThirdPage(tFragment3);
Run Code Online (Sandbox Code Playgroud)

我可以回复(通过方法PageFragmentAdapter)片段并将"嵌套片段"放入我的PageFragment(当然onCreate())中,如:

getChildFragmentManager().beginTransaction()
.add(R.id.framelayout_history, mFragment)
.addToBackStack(null)
.commit();
Run Code Online (Sandbox Code Playgroud)

注意:我用它PageFragment.setNestedFragment() …

android nested android-fragments android-viewpager fragmentpageradapter

6
推荐指数
1
解决办法
1万
查看次数