标签: android-viewpager

为什么不能在片段中使用ViewPager?它实际上是

有信息,这是不可能使用ViewPagerFragment像"许多来源的忙打码机指南Android开发 "由马克·墨菲,或职位像这样的SO.我很困惑,因为我没有这样的问题而且我成功地使用了ViewPager我的内容Fragment.唯一的区别是我实例化了一个ViewPagernot in onCreateView()方法而不是in onActivityCreated().一切都很好.

所以问题是 - 可能是我只是不知道某些事情,并且出于某些原因不推荐这样做以进行UI实例化onActivityCreated()?但又一次 - 一切正常.

这是类和xml的列表:

类:

public class ViewPagerFragment extends Fragment {

    static final int NUM_ITEMS = 2;

    private ViewPagerAdapter mAdapter;
    private ViewPager mPager;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.view_pager_fragment, container, false);
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        mAdapter = new ViewPagerAdapter(getFragmentManager());

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

    public …
Run Code Online (Sandbox Code Playgroud)

android android-fragments commonsware android-viewpager

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

查看寻呼机和片段生命周期

我有一个ViewPager,一次加载三个页面.如果我从第1页到第2页再扫描到第3页,则第一页(片段)转到 onPause().然后,如果我滑动到第二页,onResume()即使页面1仍然对用户不可见,第一页也会出现.所以,我的问题是:如何区分代码中的第一页和第二页?例如,如果我必须在片段可见时运行一段代码,那么它是如何完成的?

android android-lifecycle android-fragments android-viewpager

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

如何仅在PagerSlidingTabStrip中单击其选项卡时加载片段数据

PagerSlidingTabStrip在我的项目中使用,并在片段中显示数据.它是一个很棒的图书馆.每个片段都包含一个学者的讲座,这些讲座是从Web服务加载的.访问Web服务的代码是onCreateViewFragment的方法.目前,所有片段的数据在添加时同时加载ViewPager.我想知道是否有任何方法只有当用户点击/滑动到特定选项卡时才加载Fragment的数据.不是一次一切.

当前代码非常标准,我从提供的示例[android解决方案]中获得了帮助.1

寻呼机适配器如下:

public class ScholarDetailPagerAdapter extends FragmentPagerAdapter {

    private final String[] TITLES = { "Scholar Info", "Lectures"};
    Scholar _scholar;

    public ScholarDetailPagerAdapter(FragmentManager fm, Scholar scholar) {
        super(fm);
        _scholar = scholar;
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return TITLES[position];
    }

    @Override
    public Fragment getItem(int arg0) {
        if(arg0 == 0)
            return ScholarsInfoFragment.netInstance(_scholar.Name, _scholar.Information, _scholar.ThumbnailUrl);
        else
            return ScholarLecturesFragment.newInstance(_scholar.ScholarId);
    }

    @Override
    public int getCount() {
        return TITLES.length;
    }

}
Run Code Online (Sandbox Code Playgroud)

它返回两个片段,信息和讲座.Lectures片段调用Web服务以获得学者的讲座.

活动代码是:

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

android android-fragments android-viewpager pagerslidingtabstrip

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

ViewPager动画淡入/淡出而不是幻灯片

我从这里得到了FragmentBasics示例.当我滑动而不是左右滑动时,有没有办法让ViewPager动画简单地淡入淡出?我一直在尝试使用PageTransformer的一些东西,但没有成功,我仍然可以看到它滑动.所以我想我需要以某种方式强迫它的位置保持不变,而滑动我的手指只影响alpha.

public class SecondActivity extends Activity {

SectionsPagerAdapter mSectionsPagerAdapter;

ViewPager mViewPager;

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

    // Create the adapter that will return a fragment for each of the three
    // primary sections of the activity.
    mSectionsPagerAdapter = new SectionsPagerAdapter(getFragmentManager());

    // Set up the ViewPager with the sections adapter.
    mViewPager = (ViewPager) findViewById(R.id.pager);
    mViewPager.setPageTransformer(false, new FadePageTransformer());
    mViewPager.setAdapter(mSectionsPagerAdapter);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    // Inflate the menu; this adds items to the action bar …
Run Code Online (Sandbox Code Playgroud)

android native slide fadein android-viewpager

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

DialogFragment中的ViewPager + FragmentPagerAdapter获取"IllegalArgumentException:找不到视图..."

我试图显示一个FragmentDialog(创建并显示为一个未添加为视图层次结构中的内容的对话框),其中有一个ViewPager,其内容由FragmentPagerAdapter给出(提供由图像组成的片段).

从FragmentActivity显示ViewPager + FragmentPagerAdapter时,代码非常完美,但从FragmentDialog执行此操作时会出现以下异常:

"IllegalArgumentException:找不到片段SimpleFragment的id 0x7f040077的视图......"

这是我的代码:

一个SherlockFragmentActivity,带有一个按钮,用于创建和显示对话框.

public class BorrameActivity extends SherlockFragmentActivity{
    @Override
 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);  
    setContentView(R.layout.one_act);

    Button button = (Button) findViewById(R.id.button);
    button.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View arg0) {
            showTheDialog();

        }});
   }

   private void showTheDialog(){
       AchGalleryDialog newFragment = AchGalleryDialog.newInstance(achs);
       newFragment.show(getSupportFragmentManager(), "dialog");
   }
Run Code Online (Sandbox Code Playgroud)

FragmentDialog:

public class AchGalleryDialog extends DialogFragment{
    public AchGalleryDialog(){  
}

    public static AchGalleryDialog newInstance(){       
        AchGalleryDialog f = new AchGalleryDialog();
        return f;       
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);  
    }

    @Override
    public View onCreateView(LayoutInflater …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-viewpager fragmentpageradapter android-nested-fragment

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

仅在第二次导航到Fragment时导致java.IllegalStateException错误,无活动

我得到一个非常令人费解的错误,我不知道如何开始工作.

我有一个简单的应用程序,只有一个活动,视图是用Fragments实现的.其中一个片段里面有一个ViewPager; 所以我决定我想要使用v4支持库的getChildFragmentManager类.我还必须使用ActionBarSherlock,这会导致问题,因为它没有附带v4库的v11.

我通过用v11库替换ABS中的v4支持库来解决这个问题,所有编译好的东西都可以工作,包括ViewPager.

这是奇怪的部分:

第一次打开ViewPager的片段时,它可以正常工作; 但导航到的第二次,应用程序崩溃,给出了无用的堆栈跟踪.从调试开始,我发现问题出在getChildFragmentManager返回的FragmentManager上; 它会抛出No Activity错误.

有没有人知道是什么原因引起的?

我将发布您认为相关的代码.

谢谢你,大卫

android android-fragments android-viewpager actionbarsherlock android-support-library

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

CardView layout_margin无效

我正在玩新的CardView,但边缘似乎没有应用.

<?xml version="1.0" encoding="utf-8"?>

<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/card_view"
android:layout_gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="18dp"
android:layout_marginLeft="18dp"
android:layout_marginRight="18dp"
card_view:cardCornerRadius="4dp"
card_view:cardBackgroundColor="#FFA"
card_view:layout_margind="4dp">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

<TextView
    android:id="@+id/info_text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!"/>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!"/>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!"/>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!"/>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!"/>

</LinearLayout>

</android.support.v7.widget.CardView>
Run Code Online (Sandbox Code Playgroud)

顺便说一下,我在ViewPager中的片段中使用它.该卡扩展了屏幕的整个宽度(match_parent),即使我在CardView上使用android:layout_marginLeft ="18dp"和android:layout_marginRight ="18dp".

我有什么想法可能做错了吗?

android android-viewpager android-cardview

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

带有viewpager的TabLayout不能平滑滚动

编辑

我已按照这些教程来解决此问题.

http://www.truiton.com/2015/06/android-tabs-example-fragments-viewpager/ https://guides.codepath.com/android/google-play-style-tabs-using-tablayout http:/ /www.voidynullness.net/blog/2015/08/16/android-tablayout-design-support-library-tutorial/

但是在尝试了几种解决方案之后,这个问题仍然存在.这是我面临的问题的演示.自从我遇到这个问题以来已经有好几周了.

演示链接.

我用于测试的设备是Nexus 4和Nexus 5.

TabLayoutViewPager滚动不顺畅.我需要滑动两次以在下一次点击时移动.我环顾网络但找不到任何解决方案.我正在使用最新的支持设计库.这是gradle文件

apply plugin: 'com.android.application'

android {
compileSdkVersion 23
buildToolsVersion "23.0.3"

defaultConfig {
    applicationId "com.softoven.ultron"
    minSdkVersion 15
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.3.0'
compile 'com.android.support:design:23.3.0'
compile 'org.jsoup:jsoup:1.6.1'
compile 'com.mikhaellopez:circularimageview:3.0.0'
compile 'com.android.support:recyclerview-v7:23.3.0'
compile 'com.mcxiaoke.volley:library:1.0.19'
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
compile 'com.google.code.gson:gson:2.5'
}
Run Code Online (Sandbox Code Playgroud)

这是活动代码.

private DrawerLayout …
Run Code Online (Sandbox Code Playgroud)

java android android-fragments android-viewpager android-tablayout

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

在Android中使用ViewPager2

我开始了解ViewPager2,并尝试实现它,但是没有找到任何合适的示例。

谁能告诉我如何使用它。

我在寻找提示,而不是示例。

android android-viewpager android-viewpager2

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

IllegalStateException:<MyFragment>当前不在FragmentManager中

我知道这听起来像是FragmentStatePagerAdapter IllegalStateException的副本:<MyFragment>当前不在FragmentManager中, 但他的解决方案与我的情况无关.

我很少遇到以下崩溃:

java.lang.RuntimeException:无法暂停活动{MyActivity}:

...

引起:java.lang.IllegalStateException:片段MyFragment {40648258 id = 0x7f070051}当前不在android.support.v4.app.FragmentStatePagerAdapter的android.support.v4.app.FragmentManagerImpl.putFragment(MT:516)的FragmentManager中.saveState(MT:185)在android.support.v4.view.ViewPager.onSaveInstanceState(MT:881)

...

在Android.app.Activity.onSaveInstanceState(Activity.java:1138)的com.android.internal.policy.impl.PhoneWindow.saveHierarchyState(PhoneWindow.java:1522)的android.view.View.saveHierarchyState(View.java:6238) )在MyActivity.onSaveInstanceState(MT:336)的android.support.v4.app.FragmentActivity.onSaveInstanceState(MT:480)处

看起来这是我无法理解的奇怪代码FragmentStatePagerAdapter:

for (int i=0; i<mFragments.size(); i++) {
    Fragment f = mFragments.get(i);
    if (f != null) {
        if (state == null) {
            state = new Bundle();
        }
        String key = "f" + i;
        mFragmentManager.putFragment(state, key, f);
    }
}
Run Code Online (Sandbox Code Playgroud)

它看起来像适配器获取我FragmentmFragments但不能添加其状态FragmentManager.

我找不到任何方法在我的测试设备上重新创建它,只是从一些用户那里收到了这个.

我正在使用支持包v4.

有帮助吗?谢谢.

java android illegalstateexception android-fragments android-viewpager

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