标签: android-viewpager

检测用户何时从页面边缘滑动 viewpager

我确信有一些关于它的帖子,我以前浏览过它们,但现在我找不到它们。

我想检测当用户从页面边缘(例如左边缘)滑动 viewpager 时的动作。我想对这种滑动进行一些特殊处理,例如显示菜单。

是否有任何 ViewPager 内置(?)支持?我依稀记得是这样的。否则,我必须实现自己的逻辑来检测这些操作。

有谁能指点我一下吗?

在此处输入图片说明

android swipe android-viewpager

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

在ViewPager android中显示两个项目

我正在从这个网站开发示例教程。

在本教程中,每个 只显示一个项目ViewPager,但我想显示两个项目。在我进行了一些定制后,它在一个寻呼机中显示了两个项目。但两种观点是一样的。我不要。我想在屏幕上显示不同的视图。

谢谢。

测试活动.java

public class TestingActivity extends ActionBarActivity {
    // Declare Variables
    ViewPager viewPager;
    PagerAdapter adapter;
    String[] rank;
    String[] country;
    String[] population;
    int[] flag;
    CirclePageIndicator mIndicator;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Get the view from viewpager_main.xml
        setContentView(R.layout.viewpager_main);

        // Locate the ViewPager in viewpager_main.xml
        viewPager = (ViewPager) findViewById(R.id.pager);
        // Pass results to ViewPagerAdapter Class
        adapter = new ViewPagerAdapter(TestingActivity.this, rank, country,
                population, flag);
        // Binds the Adapter to the ViewPager
        viewPager.setAdapter(adapter);

        // ViewPager …
Run Code Online (Sandbox Code Playgroud)

android android-viewpager

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

viewPager 不显示片段

在此处输入图片说明对于这个项目,我有一些标签必须在它们下面显示一些东西,我正在使用视图寻呼机,但由于某种原因,片段布局没有显示在屏幕上。我得到一个空白屏幕,但没有错误或任何东西。我一直在谷歌搜索并搜索了几个小时,甚至开始了一个新项目,只是为了确保它不是构建错误,但仍然没有找到解决我的问题的方法。我已经做了很多次这样的例子并使用了完全相同的步骤,但由于某种原因,这次它不起作用。任何帮助将不胜感激

这是我的 mainActivity 类

public class MainActivity extends ActionBarActivity {

Toolbar toolbar;
ViewPager myViewPager;
SlidingTabLayout mySlidingTabs;

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

    toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    myViewPager = (ViewPager) findViewById(R.id.viewPager);
    myViewPager.setAdapter(new MyPagerAdapter(getSupportFragmentManager(), this));

    mySlidingTabs = (SlidingTabLayout) findViewById(R.id.sliding_tabs);
    mySlidingTabs.setViewPager(myViewPager);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的自定义适配器类

public class MyPagerAdapter extends FragmentPagerAdapter {

private Context context;
private String[] tabNames = {"Beverages", "Deli & Bakery", "Fresh Produce", "Health & Beauty", "Meat & Seafood", "Natural Foods", "Pet Care"};

public MyPagerAdapter(FragmentManager fm, Context context) {
    super(fm); …
Run Code Online (Sandbox Code Playgroud)

java xml android android-fragments android-viewpager

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

用于滑动图像的 Android 页面指示器

我正在做一个项目。我想用页面指示器显示滑动图像。幻灯片和页面指示器都出现在我的应用程序中,当我滚动图像时,图像成功更改并且工作正常。但我的页面指示器没有改变。当我在 eclipse 中运行代码时,它让我感到困惑,它工作正常,但在 android studio 中却没有。这是我的 PageIndicator:

public class PageIndicator extends ImageView{

private Paint            fillPaint;
private Paint            strokePaint;
private int              count;
private int              indicatorWidth;
private static final int CIRCLE_RADIUS       = 8;
private static final int CIRCLE_SPACE        = 10;
private static final int CIRCLE_STROKE_COLOR = Color.GRAY;
private static final int CIRCLE_FILL_COLOR   = Color.LTGRAY;
private int              screenWidth;
private float            offsetX;
private int              currentPageIndex;
private float            percent;


public PageIndicator(Context context) {
    super(context);
    initialize();
}


public PageIndicator(Context context, AttributeSet attrs) {
    super(context, attrs);
    initialize(); …
Run Code Online (Sandbox Code Playgroud)

android android-viewpager

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

TabLayout 未在 Marshmallow 上显示选项卡标题

当我在棉花糖设备上测试我的应用程序时,我遇到了一个奇怪的问题,我的标签页标题没有显示。当我在所有其他设备上测试它时,标题显示得很好。在调试时,设备会遇到所有相同的点,包括我的适配器内的“getPageTitle”方法。我已经阅读了许多使用 android 的 TabLayout 和 ViewPager 的教程,只是为了确保我没有遗漏任何东西,而且据我所知,我没有做错任何事情。

这是我主要活动中的代码,

// setup viewPager
final ViewPager viewPager = (ViewPager) findViewById(R.id.viewPager);
setupViewPager(viewPager);

// setup tabLayout
TabLayout tabLayout = (TabLayout) findViewById(R.id.tabLayout);
tabLayout.setupWithViewPager(viewPager);
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
Run Code Online (Sandbox Code Playgroud)

我的 setUpViewPager() 方法,

private void setupViewPager(ViewPager viewPager) {
    ViewPagerAdapter adapter = new ViewPagerAdapter(getFragmentManager());
    viewPager.setAdapter(adapter);
}
Run Code Online (Sandbox Code Playgroud)

和我的适配器类,它扩展了 FragmentPagerAdapter

private class ViewPagerAdapter extends FragmentPagerAdapter {
    private static final int NUM_FRAGMENTS = 2;

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

    @Override
    public Fragment getItem(int position) {
        switch (position) {
            case 0: return AllFeaturesFragment.newInstance();
            case 1: …
Run Code Online (Sandbox Code Playgroud)

android android-viewpager android-tablayout android-6.0-marshmallow

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

使用 Espresso 在 ViewPager 中查找视图(AmbiguousViewMatcherException)

我有一个 ViewPager,它一次只在屏幕上显示一个片段。该片段有一个 recyclerView,其中填充了由一个图像和两个 textView 组成的列表项。我需要选择项目并根据显示的文本执行单击。

我的 viewPage 有 Id pager,recyclerView 是listview,我正在使用 cardView 小部件,它有一个名为的相对布局cardContainer,其中有一个nickNname我感兴趣的 textView 。

Espresso 似乎只能识别pager但在视图层次结构中找不到任何其他 Id。我如何访问nickName或基本上访问viewPager 或片段中的任何其他视图?

我尝试了以下方法:

        ViewInteraction listviewInteraction = onView (allOf(withId(R.id.pager)));
    listviewInteraction.check(matches(hasDescendant(withId(R.id.listview))));
Run Code Online (Sandbox Code Playgroud)

我收到以下错误,因为寻呼机没有任何孩子

    Expected: has descendant: with id: 2131689666
Got: "ViewPager{id=2131689659, res-name=pager, visibility=VISIBLE, width=1080, height=1533, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=144.0, child-count=0}"
Run Code Online (Sandbox Code Playgroud)

我还尝试了几种不同的方法,类似于此处发布的方法,但 Espresso 找不到listviewnickname

我怎样才能找到视图nickName

更新:

我又运行了一些测试,当 Espresso 运行测试时,viewPager …

android listview android-fragments android-viewpager android-espresso

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

在tabLayout中设置Icon会引发nullpointer异常

我正在创建一个像instagram这样的简单项目,它的主要活动有3个标签。我想在tablayout标签中添加带有文本的图标,但是会引发异常。

我的主要活动

public class MainActivity extends AppCompatActivity {
TabLayout tabLayout;
ViewPager viewPager;

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


    viewPager = (ViewPager) findViewById(R.id.viewPager);
    tabLayout = (TabLayout) findViewById(R.id.tabLayout);
    tabLayout.setupWithViewPager(viewPager);

    TabLayout.Tab tab = tabLayout.getTabAt(0);

    tab.setIcon(new IconicsDrawable(this).icon(FontAwesome.Icon.faw_home));


    viewPager.setAdapter(new CustomAdapter(getSupportFragmentManager(), getApplicationContext()));


}

private class CustomAdapter extends FragmentPagerAdapter {
    private String items[] = {"Home", "Upload", "Profile"};

    public CustomAdapter(FragmentManager supportFragmentManager, Context applicationContext) {
        super(supportFragmentManager);
    }

    @Override
    public Fragment getItem(int position) {
        switch (position) {
            case 0:
                return new fragment1();
            case 1:
                return new fragment2();
            case …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-viewpager android-tablayout

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

在Kotlin中禁用Viewpager的View Pager滑动

我是Kotlin的新手,片段中有View Pager,并且已在其中设置了pager适配器。一切工作正常,但是当我尝试停止在Kotlin中查看寻呼机的页面滑动并且在Kotlin中找不到任何方法时。我试图在堆栈上找到解决方案,但是没有运气。尽管Java中有很多,但Kotlin却没有。

我已经使用Java作为

viewPager.setPagingEnabled(false);
Run Code Online (Sandbox Code Playgroud)

但是每当我在Kotlin中尝试此操作时,我都会出错。任何帮助将不胜感激。

android android-viewpager kotlin

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

java.lang.ClassNotFoundException:在路径上找不到类“ androidx.core.view.ViewPager”

我只是将项目迁移到androidx,并且由于膨胀viewpager组件而出现膨胀错误...我将android.support.v4.view.ViewPager替换为androidx.viewpager.widget.ViewPager

这是我的xml文件

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent"
      android:padding="@dimen/_1dp"
      android:layout_height="wrap_content"
      android:background="@color/banner_border_color">

      <androidx.viewpager.widget.ViewPager
           android:id="@+id/vp_slider"
           android:layout_width="match_parent"
           android:layout_height="@dimen/_140dp"
           android:background="@drawable/thumb_new_background" />

           <RelativeLayout
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:layout_gravity="bottom">

               <TextView
                   android:id="@+id/tv_banner_view_more"
                   android:layout_width="wrap_content"
                   android:layout_height="wrap_content"
                   android:layout_centerVertical="true"
                   android:layout_marginLeft="@dimen/_16dp"
                   android:background="@drawable/drawable_btn_curved"
                   android:paddingBottom="@dimen/_6dp"
                   android:paddingLeft="@dimen/_8dp"
                   android:paddingRight="@dimen/_8dp"
                   android:paddingTop="@dimen/_6dp"
                   android:visibility="gone"
                   android:text="@string/text_view_more"
                   android:textColor="@color/c_white"
                   android:textSize="@dimen/_8sp" />

     </RelativeLayout>

</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

我得到的错误

Caused by: android.view.InflateException: Binary XML file line #329: Binary XML file line #8: Error inflating class androidx.core.view.ViewPager
         Caused by: android.view.InflateException: Binary XML file line #8: Error inflating class androidx.core.view.ViewPager
         Caused by: java.lang.ClassNotFoundException: Didn't find class "androidx.core.view.ViewPager" on path: DexPathList[
Run Code Online (Sandbox Code Playgroud)

android android-layout android-viewpager androidx

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

android:ViewPager指示器,如修补程序图片

所以,我有一个ViewPager,我想实现一个Page-Indicator像Tinder一样简单的图片:

在此处输入图片说明

在此处输入图片说明

我以为找到图书馆会很容易,但是对于我的一生,我找不到任何图书馆。

我不在乎是否通过操纵点的宽度或使用可绘制对象来实现条形图,库唯一要做的就是拉伸条形图,以使它们始终占据100%的宽度ViewPager

任何人都知道这样的图书馆,还是在没有图书馆帮助的情况下容易实现?

android android-viewpager viewpagerindicator

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