Articles of android viewpager

在ViewPager中滑动方向

我有一个使用ViewPager和FragmentStatePagerAdapter的Android应用程序。 然而,我需要添加一个新function,我必须知道滑动方向从一个片段视图移动到另一个,左或右。 (也就是说,当我向左滑动时,我会做一件事,当我向右滑动时,我会做其他事情)。 请注意,我不需要在滑动结束后发生事件。 滑动发生时我必须做这些事件。 我想过使用setOnPageChangeListener()但它并没有告诉我滑动方向。 你能告诉我如何找出滑动方向吗? 谢谢。

如何在ViewPager中选择加载片段

我在Viewpager中使用了3个片段,它在asytask和加载器中加载大数据的问题,在像HTC这样的设备中运行良好,但在低端设备中需要花费大量时间。 这是因为主要是当我实现pagerAdapter时我将Fragments放在arrayList中,这会强制片段在主活动加载时实例化。 我需要它只是“加载”第一个片段(main),当用户“swype”加载另一个片段时。 它的任何方式实现这一目标? 这是我的pageAdapater public class PagerAdapter extends FragmentPagerAdapter { private final ArrayList mFragments = new ArrayList(); // private final ArrayList titulos = new ArrayList(); // private int NUM_PAGES =0; public PagerAdapter(FragmentManager manager,int num_pages) { super(manager); // this.NUM_PAGES = num_pages; } public void addFragment(Fragment fragment,String title) { mFragments.add(fragment); notifyDataSetChanged(); } @Override public int getCount() […]

从其他片段返回时,片段中的Viewpager未显示(已恢复)

我面临的问题如下:在主屏幕中,我有3个按钮:Config,Main,Setting。 单击每个按钮时,将显示相应的片段以使FrameLayout中的布局膨胀。 当用户处于Config或Setting Fragment时,可以使用onBackpressed返回主Fragment或单击Main按钮。 当用户在Main Fragment中时,如果用户单击Back,则会显示一个popup窗口以确认退出。 在主片段中,我放了一个viewpager。 在这个viewpager中,我放了2个其他片段,每个片段都包含一个图像网格(我还用一个圆形指示器来查看底部的页面变化)。 为简单起见,Config Fragment和Setting Fragment仅在中心显示文本。 当应用程序启动时,在显示正常的Main片段时,当我点击按钮Setting或Config时,它显示正常相应的片段。 问题是当单击“返回”按钮(在Android上)时,它会返回到Main Fragment但在viewpager中没有片段。 它显示空屏幕。 当进程从config / setting片段返回到主片段时,我可能错了。 如果主片段只是在没有viewpager的情况下膨胀某个布局,则问题不会发生。 从config / setting片段返回主片段时如何恢复viewpager的状态? 我附上我的代码,以便你能给我更清晰的答案。 非常感谢您的回答。 package com.example.testfragmentviewpager; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.AsyncTask; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.app.FragmentTransaction; import android.support.v4.view.ViewPager; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import […]

如何在Android中将Circle Page Indicator引入前端

我在视图底部有一个视图寻呼机库和一个圆形页面指示器。 我想将页面指示器放在视图寻呼机的前面,如果它可以像在iphone图像库中一样可以使它透明。 你知道怎么做吗? 解: 这是解决方案的xml代码。 感谢@sanna 这是我的画廊的新面貌。

FragmentPagerAdapter动态更新标题

我有一个带有FragmentPagerAdapter的ViewPager,它有3个片段。 现在,我有许多项目作为片段标题的一部分 : 因此,用户可以添加或删除这些项目,并且标题应相应更新。 但是,这个标题似乎是静态的。 怎么能回忆起这个方法来更新FragmentPagerAdapter的标题? @Override public CharSequence getPageTitle(int position) { switch (position) { case 0: return items + ” (” + notFoundItems + “)”; case 1: return found; case 2: return review; } return “”; } 我在SO上发现了几个类似的问题,但我需要更新标题 ,而不仅仅是片段本身。

如何捕捉RecyclerView项目,以便每个X项目都被视为一个单元来捕捉?

背景 可以使用以下方法将RecyclerView捕捉到其中心: LinearSnapHelper().attachToRecyclerView(recyclerView) 例: MainActivity.kt class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val inflater = LayoutInflater.from(this) recyclerView.adapter = object : RecyclerView.Adapter() { override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { val textView = holder.itemView as TextView textView.setBackgroundColor(if (position % 2 == 0) 0xffff0000.toInt() else 0xff00ff00.toInt()) textView.text = position.toString() } override fun […]

嵌套Android ViewPager,在ListView中水平滑动ListItems

我在活动的根级别上有一个ViewPager。 寻呼机的每个页面都包含一个ListFragment(由FragmentPagerAdapter支持)。 某些列表视图项应另外包含ViewPagers以支持滑动这些项的内容(例如列表项中的水平库)。 如何嵌套查看寻呼机? ViewPager – > ListView(在页面中) – > ViewPager(在列表项内) 我可以水平滑动ListFragments,我可以垂直滑动整个列表,但我无法在列表项内滑动。

刷新/重新加载/重新实例化android选项卡系统中的片段

我有一个带有viewpager的活动,它有3个标签和3个片段,每个标签内都有一个片段。 我知道片段管理器存储片段的初始实例,这样如果我从选项卡上滑动然后返回到该选项卡,它将被加载到内存中,并且不会对其应用任何更新。 我需要发生相反的情况,即:每次我滑动到选项卡时,需要加载该选项卡中片段的新实例,以便更新数据。 我努力了: 在onTabSelected中分离附加片段(没有任何反应) 删除onTabSelected中的添加片段(没有任何反应) setOffscreenPageLimit(0)(没有任何反应) 刷新每个片段内的函数,调用onTabSelected(给出nullPointerException) 我一直在努力解决这个问题一个星期没有进展。 我感谢任何帮助,无论是暗示,评论,建议。 让我知道我应该发布什么代码,谢谢。

Android:根据ViewPager显示操作栏菜单项

我无法获得以下代码来解决问题。 我有一个包含3个片段的viewpager ,我希望搜索图标只显示在一个上。 我开始尝试通过片段添加搜索function,但是当滑动到该页面时,菜单项的渲染速度很慢。 我现在要将搜索图标添加到活动中,然后根据哪个viewpager页面处于活动状态隐藏或显示,但以下操作无效: public class MyApp extends FragmentActivity implements FragmentTeams.FragmentNotification,ViewPager.OnPageChangeListener, OnNavigationListener{ … @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); menuSearch = menu.findItem(R.id.menu_search); mSearchView = new SearchView(this); menuSearch.setActionView(mSearchView); menuSearch.setVisible(false); return true; } @Override public void onPageSelected(int pageNum) { if(pageNum== 1){ ActionBar actionBar = MyApp.this.getActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); menuSearch.setVisible(true); invalidateOptionsMenu(); }else{ ActionBar actionBar = MyApp.this.getActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); […]

Child的OnClickListener阻止了Android ViewPager的滑动

我正在使用带有动态视图的ViewPager,如此链接所示。 我将每个页面添加到viewpager。 创建每个页面并将其添加到寻呼机适配器的代码如下所示 public View createPage( ) { TableLayout table = new TableLayout(mycontext); TableRow row = new TableRow(mycontext); for(int i=0; i <= num_of_views; i++) { TableLayout catTable = new TableLayout(mycontext); TableLayout.LayoutParams params = new TableLayout.LayoutParams(); params.height = LayoutParams.MATCH_PARENT; TableRow catName = new TableRow(mycontext); catName.setGravity(0x03); catName.setLayoutParams(params); TextView cat = new TextView(mycontext); TableRow.LayoutParams RowParams= new TableRow.LayoutParams(pixeltoDp(0),pixeltoDp(85)); RowParams.weight […]