小编Noo*_*les的帖子

替换ViewPager中的Fragment

我正在尝试使用Fragment ViewPager使用FragmentPagerAdapter.我想要实现的是将位于第一页上的片段替换为另一片段ViewPager.

寻呼机由两页组成.第一个是FirstPagerFragment,第二个是SecondPagerFragment.单击第一页的按钮.我想FirstPagerFragment用NextFragment 替换它.

我的代码如下.

public class FragmentPagerActivity extends FragmentActivity {

    static final int NUM_ITEMS = 2;

    MyAdapter mAdapter;
    ViewPager mPager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragment_pager);

        mAdapter = new MyAdapter(getSupportFragmentManager());

        mPager = (ViewPager) findViewById(R.id.pager);
        mPager.setAdapter(mAdapter);

    }


    /**
     * Pager Adapter
     */
    public static class MyAdapter extends FragmentPagerAdapter {
        public MyAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public int getCount() {
            return NUM_ITEMS;
        }

        @Override
        public Fragment getItem(int …
Run Code Online (Sandbox Code Playgroud)

android view pager android-fragments android-viewpager

259
推荐指数
8
解决办法
18万
查看次数

ViewPager片段娱乐,恢复但不可见

我有一个ViewPager + FragmentPageAdapter的问题.

场景: 我在片段A中有一个活动.片段A有一个带有片段B1和片段B2的ViewPager.B1 e B2是相同的类,但不同的数据作为参数.

问题: 在创建时一切都很好.但是当应用程序进入后台并且进程被android杀死时,尝试恢复最后一个状态,再次启动应用程序,片段B1 e B2在前景中不可见,而片段A是.看起来有点奇怪的是片段B1和B2在片段A的ChildFragmentManager中,并且由于onStart()和onResume()被调用(由Log看到)而被恢复.此外,寻呼机恢复两页,但空或更好,没有任何可见.

如果我很清楚FragmentPagerAdapter是如何工作的,那么它应该负责管理自己的片段以及如何重新创建片段.此外,为了强制执行这一点,如果已经存在具有指定标记的该位置的片段,则FragmentPagerAdapter在从后台返回时不会调用getItem(int position).

...那么为什么我看不到片段B1 e B2,只有传呼机空了?

这是我的示例代码.

FragmentA

@Override
    public void onStart() {
        super.onStart();
        populateViewPager();
    }

    private void populateViewPager() {
        pager.setAdapter(new MyFragmentPageAdapter(getChildFragmentManager()));
        indicator.setViewPager(pager);
        indicator.notifyDataSetChanged();
    }
Run Code Online (Sandbox Code Playgroud)

FragmentPagerAdapter

public class MyFragmentPageAdapter extends FragmentPagerAdapter {


    public MyFragmentPageAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {
        return FragmentB.newInstance(position);
    }

    @Override
    public int getCount() {
        return 2; 
    }

    @Override
    public CharSequence getPageTitle(int position) {
        String title = "";
        if (position == 0)
            title …
Run Code Online (Sandbox Code Playgroud)

android android-adapter android-fragments android-viewpager

11
推荐指数
2
解决办法
3536
查看次数

为什么Retrofit无法使用方括号正确编码查询字符串?

我在我的Android应用程序中使用Retrofit作为我的网络层,但是我对URL编码有疑问.

我必须像这样调用REST API:

https://my_hostname.com/some_path?q=some_query&param[0]=value1&param[1]=value2&other_param=abcd
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,查询字符串由一些不同类型的参数组成,因此我决定@QueryMap在Retrofit Interface中使用注释,Map<String, String>其中where q, param[1], param[0], other_param是地图的String键

我期待什么?我希望URL中的方括号用%5Bfor '['%5Dfor 编码'[',但这不会发生.

为什么会这样?方括号应使用百分比编码进行编码.这是一个错误还是我做错了什么?我也尝试了@EncodedQueryMap没有差异的注释.

java android urlencode retrofit

8
推荐指数
1
解决办法
9119
查看次数

gradle如何处理具有不同支持库v4版本的多个模块?

我有一个Android项目,它依赖于不同的模块,每个模块依赖于android support-v4库的不同版本

1)我的应用程序还依赖于最新的android support-v4库(修订版21)所以在这个build.gralde中我放了一行:

dependencies {
            compile 'com.android.support:support-v4:21.0.0'
        }
Run Code Online (Sandbox Code Playgroud)

2)Facebook SDK(v.3.15)模块也依赖于android支持库v4,但是版本13及其build.gradle文件说:

dependencies {
        compile 'com.android.support:support-v4:13.0.+'
        compile files('../libs/bolts.jar')
    }
Run Code Online (Sandbox Code Playgroud)

3)还有一个模块,在这种情况下我们可以调用Module3,也取决于support-v4但是与其他模块的修订版本不同,例如:

dependencies {
        compile 'com.android.support:support-v4:19.0.+'
        compile files('../libs/bolts.jar')
    }
Run Code Online (Sandbox Code Playgroud)

问题:

1)gradle如何处理不同的support-v4库修订版?

2)它究竟做了什么?

3)就apk大小而言,它是什么意思?

android gradle android-support-library android-gradle-plugin

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

如何在Android中清除任务并更改根活动?

情况

活动A - >活动B - >活动C.

当活动C开始时,我希望C成为根活动,而A和B完成.

我怎样才能做到这一点?

UDPATE

我在10级,所以我不能使用适用于11级和更高级别的CLEAR_TASK标志.强文

android task android-activity

5
推荐指数
1
解决办法
7317
查看次数