我确信有一些关于它的帖子,我以前浏览过它们,但现在我找不到它们。
我想检测当用户从页面边缘(例如左边缘)滑动 viewpager 时的动作。我想对这种滑动进行一些特殊处理,例如显示菜单。
是否有任何 ViewPager 内置(?)支持?我依稀记得是这样的。否则,我必须实现自己的逻辑来检测这些操作。
有谁能指点我一下吗?

我正在从这个网站开发示例教程。
在本教程中,每个 只显示一个项目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)
对于这个项目,我有一些标签必须在它们下面显示一些东西,我正在使用视图寻呼机,但由于某种原因,片段布局没有显示在屏幕上。我得到一个空白屏幕,但没有错误或任何东西。我一直在谷歌搜索并搜索了几个小时,甚至开始了一个新项目,只是为了确保它不是构建错误,但仍然没有找到解决我的问题的方法。我已经做了很多次这样的例子并使用了完全相同的步骤,但由于某种原因,这次它不起作用。任何帮助将不胜感激
这是我的 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) 我正在做一个项目。我想用页面指示器显示滑动图像。幻灯片和页面指示器都出现在我的应用程序中,当我滚动图像时,图像成功更改并且工作正常。但我的页面指示器没有改变。当我在 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) 当我在棉花糖设备上测试我的应用程序时,我遇到了一个奇怪的问题,我的标签页标题没有显示。当我在所有其他设备上测试它时,标题显示得很好。在调试时,设备会遇到所有相同的点,包括我的适配器内的“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
我有一个 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 找不到listview或nickname。
我怎样才能找到视图nickName?
我又运行了一些测试,当 Espresso 运行测试时,viewPager …
android listview android-fragments android-viewpager android-espresso
我正在创建一个像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
我是Kotlin的新手,片段中有View Pager,并且已在其中设置了pager适配器。一切工作正常,但是当我尝试停止在Kotlin中查看寻呼机的页面滑动并且在Kotlin中找不到任何方法时。我试图在堆栈上找到解决方案,但是没有运气。尽管Java中有很多,但Kotlin却没有。
我已经使用Java作为
viewPager.setPagingEnabled(false);
Run Code Online (Sandbox Code Playgroud)
但是每当我在Kotlin中尝试此操作时,我都会出错。任何帮助将不胜感激。
我只是将项目迁移到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) 所以,我有一个ViewPager,我想实现一个Page-Indicator像Tinder一样简单的图片:
我以为找到图书馆会很容易,但是对于我的一生,我找不到任何图书馆。
我不在乎是否通过操纵点的宽度或使用可绘制对象来实现条形图,库唯一要做的就是拉伸条形图,以使它们始终占据100%的宽度ViewPager。
任何人都知道这样的图书馆,还是在没有图书馆帮助的情况下容易实现?