标签: android-viewpager

android.content.res.Resources $ NotFoundException:无法找到资源ID#0xffffffff

我讨厌发布代码,并问为什么它不起作用,但我现在不知所措.我试过在下面运行下面的类,我在logcat中得到一个异常,我无法解释.即使谷歌搜索产生的结果也很少.也许我只是不了解生态系统,但例外的信息很少.我得到的例外情况如下:

03-06 21:50:43.031: E/AndroidRuntime(1013): FATAL EXCEPTION: main
03-06 21:50:43.031: E/AndroidRuntime(1013): android.content.res.Resources$NotFoundException: Unable to find resource ID #0xffffffff
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.content.res.Resources.getResourceName(Resources.java:1659)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:903)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1444)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:461)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.support.v4.view.ViewPager.populate(ViewPager.java:1012)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.support.v4.view.ViewPager.populate(ViewPager.java:881)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1366)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.view.View.measure(View.java:15513)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4827)
03-06 21:50:43.031: E/AndroidRuntime(1013): …
Run Code Online (Sandbox Code Playgroud)

android android-viewpager

65
推荐指数
2
解决办法
5万
查看次数

当ViewPager的父片段隐藏然后显示时,ViewPager的片段视图丢失

我一直看到我的ViewPager和我自己的FragmentStatePagerAdapter有一些奇怪的行为.

我的视图层次结构如下:

-> (1) Fragment root view (RelativeLayout)
 -> (2) ViewPager
  -> (3) ViewPager's current fragment view
Run Code Online (Sandbox Code Playgroud)

当负责片段根视图(1)的片段被隐藏(在片段事务中使用.hide())然后显示(使用.show())时,当前在ViewPager中显示的片段视图(3) )虽然片段仍然存在,但变为null.基本上,我的ViewPager变得完全空白/透明.

我找到解决这个问题的唯一方法是打电话

int current = myViewPager.getCurrentItem();
myViewPager.setAdapter(myAdapter);
myViewPager.setCurrentItem(current);
Run Code Online (Sandbox Code Playgroud)

显示父片段后.这会以某种方式触发视图重新创建并显示在屏幕上.不幸的是,这偶尔会导致异常处理寻呼机适配器unregisterDataSetObserver()在旧观察者上调用两次.

有一个更好的方法吗?我想我要问的是:

当隐藏ViewPager的父片段时,为什么我的ViewPager中的片段视图会被销毁?

更新:当应用程序"最小化"然后"恢复"(通过按下主页操作键然后返回)时,也会发生这种情况.

每个请求,这是我的寻呼机适配器类:

public class MyInfoSlidePagerAdapter extends FragmentStatePagerAdapter {

    private ArrayList<MyInfo> infos = new ArrayList<MyInfo>();

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

    public MyInfoSlidePagerAdapter (FragmentManager fm, MyInfo[] newInfos) {
        super(fm);
        setInfos(newInfos);
    }

    @Override
    public int getItemPosition(Object object) {
        int position = infos.indexOf(((MyInfoDetailsFragment)object).getMyInfo());
        return position > 0 ? position : …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-viewpager

65
推荐指数
4
解决办法
4万
查看次数

ViewPager作为循环队列/包装

我使用的是ViewPagerFragmentStatePagerAdapter让一些片段之间的导航.

比方说,我有三个片段:A,BC.ViewPager最初显示片段A,并允许您通过从右向左滑动,然后再次滑动到片段C来导航到片段B. 这允许以下导航路径:A <--> B <--> C.

我想要的是能够在片段A上从左向右滑动并让ViewPager显示片段C,即它表现为循环队列并允许 ... --> C <--> A <--> B <--> C <--> A <-- ...

我不希望片段在其他位置重复(即最终有三个以上的实例).

使用ViewPager可以实现这种包装功能吗?

android android-fragments android-viewpager

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

调用setCurrentItem(0)时不会触发onPageSelected

我有一个带有ViewPager的Activity,它显示了一堆图片.启动时,ViewPager的位置根据用户在上一个Activity中选择的内容进行设置.类似于画廊.

我希望每次选择新页面时调用onPageSelected,即首次打开活动时或用户滑动到新页面时.

我设置起点如下:

 mPager.setCurrentItem(index);
Run Code Online (Sandbox Code Playgroud)

一切正常,除非在将index设置为0的情况下调用setCurrentItem,因为这不会触发onPageSelected.

mPager.setOnPageChangeListener(new OnPageChangeListener() {
  @Override
  public void onPageSelected(int index) {
    Log.d(TAG, "onPageSelected " + index);
  }
  ...
}
Run Code Online (Sandbox Code Playgroud)

所以我的问题是; 这是一个错误,如果是这样,我该怎么办呢?

android android-viewpager

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

Android Viewpager作为图像幻灯片库

我正在使用Jake的ViewPageIndicator,并希望像滑动图库一样显示图像.我可以开始的任何推荐链接.我已经实现了基本的viewpager,现在想要实现图像视图,如下所示

在此输入图像描述

是否可以使用ViewPageIndicator实现?

android android-viewpager actionbarsherlock

59
推荐指数
3
解决办法
16万
查看次数

向ViewPager动态添加/删除页面

我想动态地在我的视图寻呼机中添加或删除页面.那可能吗?

android android-viewpager

57
推荐指数
3
解决办法
7万
查看次数

从Fragment启动Activity会导致NullPointerException

我被困在这里,从片段中的Button开始活动时出现问题.这是我的代码:

ViewPagerAdapter.java

import java.util.List;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

public class ViewPagerAdapter extends FragmentPagerAdapter {

    private List<Fragment> fragments;

    public ViewPagerAdapter(FragmentManager fm, List<Fragment> fragments) {
        super(fm);
        this.fragments = fragments;
    }

    @Override
    public int getCount() {
        return this.fragments.size();
    }

    @Override
    public Fragment getItem(int position) {
        return this.fragments.get(position);
    }

}
Run Code Online (Sandbox Code Playgroud)

ViewPagerActivity.java

import java.util.List;
import java.util.Vector;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import android.util.Log;
import com.package.here.Class1Overview;
import com.package.here.Class1Overview;
import com.package.here.Class1Overview;

public class ViewPagerActivity extends FragmentActivity{

    @Override
    protected void onCreate(Bundle savedInstanceState) { …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-viewpager android-activity

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

onClick没有触发ViewPager

我在a上设置了一个单击侦听器ViewPager,但是从不调用onClick事件.我猜触摸事件检测ViewPager是干扰,但我看不出如何解决它...

有人可以帮忙吗?

谢谢

mViewPager.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        // never called
    }
}); 
Run Code Online (Sandbox Code Playgroud)

android android-viewpager

56
推荐指数
4
解决办法
5万
查看次数

在popBackStack之后,ViewPager中的片段未恢复

问题

从另一个片段返回后,片段不会重新附加到其宿主ViewPager.

情况

一个托管片段的活动,其布局包含ViewPager(PageListFragment在下面的示例中).ViewPager由FragmentStateViewPagerAdapter填充.托管内部托管的单个片段(PageFragment在下面的示例中)可以打开包含一组新页面的子页面列表.

行为

只要没有按下后退按钮,一切正常.一旦用户关闭其中一个子页面列表,就会重新创建先前的列表,但不会显示先前显示的页面.在父页面列表中的其他页面上滑动仍然有效.

可以在github上找到示例应用程序:

活动

public class MainActivity extends FragmentActivity {

private static final String CURRENT_FRAGMENT = MainActivity.class.getCanonicalName() + ".CURRENT_FRAGMENT";

public static final String ARG_PARENTS = "Parents";

public void goInto(String mHostingLevel, String mPosition) {
    Fragment hostingFragment = newHostingFragment(mHostingLevel, mPosition);
    addFragment(hostingFragment);
}

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

private void addBaseFragment() {
    Fragment hostingFragment = newHostingFragment("", "");
    addFragment(hostingFragment);
}

private Fragment newHostingFragment(String mHostingLevel, String oldPosition) {
    Fragment …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-viewpager

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

导航回FragmentPagerAdapter - >片段为空

我有一个片段(我会称之为pagerFragment),它被添加到后台并且可见.它拥有viewPager一个FragmentPagerAdapter.在FragmentPagerAdapter持有(假设)两个片段:A和B.

首先添加片段效果很好.

片段A有一个按钮,一旦点击,就会在后台堆叠中添加一个片段(C).

问题是:如果我添加该片段(C),然后单击返回,pagerAdapter则为空,我看不到里面的任何片段.

如果我使用hack,并破坏pagerFragments中的子片段(A和B)onDestroyView(),这解决了问题,虽然我不想使用这个hack.

任何想法可能是什么问题?

android android-fragments android-viewpager fragmentpageradapter back-stack

56
推荐指数
2
解决办法
9610
查看次数