Articles of android viewpager

如何知道ViewPager已经在android中滚动了一半的屏幕

我想知道ViewPager的视图是否滚动了一半的屏幕? 当我拖动它时,如果它覆盖了屏幕的一半,我想要更改页面。 例如,如果我正在测试MDPI,即屏幕宽度为320px,如果我将ViewPager的页面拖动160px,那么我想更改页面。 如何从ViewPager的视图覆盖这半距离?

尝试在空对象引用上调用虚方法’void android.support.v4.view.ViewPager.setAdapter(android.support.v4.view.PagerAdapter)’

我正在尝试使用android材料设计实现滑动标签布局。 但它给了我NullPointerException 。 这是我到目前为止的代码: MainActivity.java public class MainActivity extends ActionBarActivity { private Toolbar toolbar; private ViewPager pager; private SlidingTabLayout nLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main_appbar); toolbar = (Toolbar) findViewById(R.id.app_bar); setSupportActionBar(toolbar); getSupportActionBar().setDisplayShowHomeEnabled(true); NavigationDrawerFragment drawerFragment = (NavigationDrawerFragment) getSupportFragmentManager().findFragmentById(R.id.navigation_drawer_fragment); drawerFragment.setUp(R.id.navigation_drawer_fragment, (DrawerLayout) findViewById(R.id.drawer_layout), toolbar); pager = (ViewPager) findViewById(R.id.pager); pager.setAdapter(new MyPagerAdapter(getSupportFragmentManager())); nLayout = (SlidingTabLayout) findViewById(R.id.tabs); nLayout.setViewPager(pager); } […]

使用RecyclerView的Android ViewPager在BottomSheet中工作不正常

当我尝试滚动列表时,有时这工作不正确 – BottomSheet拦截滚动事件并隐藏。 如何重现这个: 打开底部 更改ViewPager的页面 尝试滚动列表 结果:将隐藏BottomSheet。 这是示例代码: 编译’com.android.support:design:23.4.0′ MainActivity.java package com.nkdroid.bottomsheetsample; import android.os.Bundle; import android.support.design.widget.BottomSheetBehavior; import android.support.design.widget.TabLayout; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView; public class MainActivity extends AppCompatActivity { private BottomSheetBehavior behavior; @Override protected void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); […]

android在视图寻呼机中异步加载数据

我需要一个查看分页器实现的解决方案。 首先,我在单页中从数据库加载大量数据,因此有时在刷卡过程中它会减慢刷卡频率(需要在页面上多次刷卡),就像在后台执行提取任务一样。 我没有使用异步任务返回视图。 是否有任何方法来延迟加载页面只允许用户在刷卡上转到其他页面但数据是延迟加载的。 我的代码示例如下; public Object instantiateItem(View container, int position) { View v; v = View.inflate(context,R.layout.swipearea, null); listView = (ListView)v.findViewById(R.id.MyListView); largeDataCall(); ((ViewPager)container).addView(v); return v; } 我在create方法中调用它。 pager=(ViewPager) findViewById(R.id.pagerAdapter); pager.setAdapter(new SimplePager(MyPager.this)); pager.setCurrentItem(364); 有什么解决方案吗?

如何动态更新视图寻呼机项目TITLE

我有一个简单的消息应用程序模块。 其中,有两个可切换的标签。 收到并发送。 让我们说我有20条消息,其中10条未读。 所以我正在做的是将标签显示为已接收 – (10)。 现在,当我阅读消息时,它将消息标记为已读。 所以我想将标题从Received – (10)更改为Received – (9)。 请让我知道我该怎么办? 这是我正在使用的代码。 @Override public int getCount() { return 2; } @Override public CharSequence getPageTitle(int position) { if (position == 0) { // if position is zero, set the title to RECEIVED. return “Received” + ” (” + String.valueOf(intUnreadReceivedMessagesCount) + “)”; } else […]

android listview在gmail应用程序中滑动删除

当项目的滑动效果删除时,显示如何在gmail APP中实现ListView? 我已经尝试使用ViewPager作为ListView元素,但这不起作用。 谢谢

重新创建包含Fragment时,ViewPager中的碎片未加载

我有一个Fragment MyFragment和一个包含更多Fragment的ViewPager 。 它在第一次加载MyFragment时正常工作,但是如果我返回并重新创建它,则不会显示ViewPager中的Fragments ,因为未调用FragmentPagerAdapter.getItem方法。 我在用着 怎么了? import android.app.Fragment; import android.app.FragmentManager; import android.support.v13.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; … public class MyFragment extends Fragment { private ViewPager pager; private MyPagerAdapter adapter; private List fragmentList = new ArrayList(); public MyFragment() {} @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.my_fragment_layout, container, false); } public void onViewCreated(View […]

在ViewPager中使用Android的SlidingPaneLayout

我正在尝试将SlidingPaneLayout与ViewPager一起使用,就像这样 当我从左边缘拉出时,SlidingPaneLayout会滑动; 但是,当我从右边缘拉出时,我似乎无法让ViewPager滑动。 当我从右边缘拉出时,它滑动很少,然后快速向后滑动。 这样做甚至可能吗? 有一个更好的方法吗? 我发现通过向上移动手指向左移动,我可以滑动视图寻呼机。

FragmentStatePagerAdapter内存泄漏(带有viewpager的嵌套片段)

我的适配器中有“内存泄漏”(引用将在后面解释)。 我目前正在使用嵌套片段来托管viewpager。 我的设置如下: 1.活动(托管片段A的空活动) 2.片段A – 使用Fragmentstatepageradapter托管viewpager的片段。 每个viewpager页面都托管片段B. 3.片段B – 包含imageview的片段。 除非发生配置更改,否则一切都很顺利。 监视堆,每次旋转时它似乎增长100 kb。 手动GCing不会释放内存。 我尝试过的事情: 1.用空白片段替换片段B – 出现同样的问题,因此不是造成问题的imageview。 2.删除片段A和B并旋转活动。 没有发生内存泄漏,因此它不是活动。 3.在任何方向改变之前使用MAT并且在旋转大约50次之后使用MAT以使堆积起来。 MAT显示了1个主要的嫌疑人,这是我的适配器类。 它显示了7MB的保留堆(非常小的浅堆)观察者,如下所示: array java.util.ArrayList @ 0x42079938 24 7,000,832 .\mObservers android.database.DataSetObservable @ 0x42053508 16 7,000,848 ..\mObservable com.example.main.Adapter@ 0x4205a048 40 7,001,416 为什么我在片段中使用viewpager: 1.我想通过设置setretaininstance(true)来保持适配器的状态和与viewpager相关的其他variables。 2.配置更改后,我不重新创建适配器,而是使用旧的适配器附加到viewpager。 3.如果我不重用旧适配器但在配置更改后创建新适配器,则内存泄漏消失。 4.关闭活动并返回上一个活动后,内存泄漏也消失了。 有任何想法吗? 非常感谢任何帮助。 谢谢,JC

有没有办法在毕加索加载默认图像

由于只有毕加索知道的修道院,我无法从我的绘画加载毕加索的图像,所以当毕加索无法加载我想加载默认图像请帮助 @Override public Object instantiateItem(ViewGroup container, final int position) { final Context context =getApplicationContext(); final ImageView imageView = new ImageView(getApplicationContext()); int padding = context.getResources().getDimensionPixelSize( R.dimen.padding_medium); imageView.setPadding(padding, padding, padding, padding); PicassoTools.clearCache(Picasso.with(context)); ((ViewPager) container).addView(imageView, 0); imageView.setTag(“myview” + position); Picasso.with(context).load(mImages[position]).resize(320,280).centerInside().placeholder(placeholderDrawable) .into(imageView,new Callback() { @Override public void onError() { // TODO Auto-generated method stub imageView.setImageResource(R.drawable.c3); } @Override public void […]