Articles of android viewpager

ViewPager中的按钮滚动到特定页面

我的ViewPager中的一个布局有一个按钮。 “R.layout.add_site”。 我想选择按下按钮,它会滚动到我的特定页面。 我已经可以选择滑动到特定页面,但我想同时拥有这两个页面。 现在我确定有办法做到这一点,但由于某种原因,我无法弄明白。 你会看到我做了一个尝试,但只是不知道要调用什么方法,以使其滚动到所需的页面。 这是R.layout.main。 这是我的代码。 public class fieldsActivity extends Activity { Button addSiteButton; Button cancelButton; Button signInButton; /** * Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // to create a custom title bar for activity window requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); setContentView(R.layout.fields); // use custom layout title bar […]

如何获取给定项目的ViewPager的子视图

我会尽可能简短而简单地回答这个问题。 View activeView = mViewPager.getChildAt(mViewPager.getCurrentItem()); 当前项为0和1时返回子视图。但如果当前项为2,则返回null 。 这是为什么? 编辑:让我重温一下自己。 如何在任何给定项目位置获取ViewPager的子视图?

如何从代码中设置PagerTitleStrip的TextColor,TextSize?

我试图从pagertitlestrip设置textsize和textcolor,但无法find方法。 编辑 main.xml中 style.xml @style/PagerTitleStripTextAppearance #FFFFFFFF 14sp 可惜我没有find从AttributeSet中获取它的方法,获得Resource NotFound或InvalidResource Exception。

以前的片段在新片段下可见

我有一个tab + ViewPager布局,在其中一个选项卡中我有一个列表视图。 当我在onclick上替换该列表片段时,我仍然可以看到新片段下的旧片段。 看到: 码: FragmentManager fragmentManager = getFragmentManager(); FragmentTransaction transaction = fragmentManager.beginTransaction(); HallsInStateFragment hallsForState = new HallsInStateFragment(); transaction.replace(R.id.container, hallsForState); transaction.addToBackStack(null); transaction.commit(); R.id.container是视图中的FrameLayout。

如何检测onTouch侦听器中的单击?

我在ScrollView有一个ViewPager 。 我需要能够水平滚动以及垂直滚动。 为了实现这一点,每当触摸我的ViewPager时,必须禁用垂直滚动( v.getParent().requestDisallowInterceptTouchEvent(true); ),以便它可以水平滚动。 但与此同时,我需要能够单击viewPager以全屏模式打开它。 问题是在onClick之前调用onTouch并且从不调用我的OnClick。 如何实现触摸onClick? viewPager.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { System.out.println(“TOUCHED “); if(event.getAction() == MotionEvent.???){ //open fullscreen activity } v.getParent().requestDisallowInterceptTouchEvent(true); //This cannot be removed return false; } }); viewPager.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { System.out.println(“CLICKED “); Intent fullPhotoIntent = new Intent(context, FullPhotoActivity.class); […]

无限的ViewPager

这似乎是可能的,但我在确定如何实现可以无限期ViewPager遇到了一些麻烦。 我的用例是一个日历,一次显示一个月,但可以通过分页足够的时间切换到任何月份。 目前我只是extending PagerAdapter ,并添加了3个自定义MonthViews : @Override public Object instantiateItem(View collection, int position) { final MonthView mv = new MonthView(HistoryMonthActivity.this); mv.setLayoutParams(new ViewSwitcher.LayoutParams( android.view.ViewGroup.LayoutParams.MATCH_PARENT, android.view.ViewGroup.LayoutParams.MATCH_PARENT)); mv.setSelectedTime(mTime); ((DirectionalViewPager) collection).addView(mv, 0); return mv; } 我想一次只在内存中保留3个MonthView ,这样当用户使用Tab键时,在每个MonthView上显示来自我的数据库的数据没有太大的延迟。 因此,每次显示新页面时,我都需要删除一个MonthView并添加一个MonthView 。 如果有人对同样的function有更好的想法,我很乐意听到它! 我正在考虑尝试使用FragmentStatePagerAdapter 。

FragmentManager IllegalStateException:没有主机

更新 :当我放入nullcheks(片段!= null,getActivity()!= null)时,崩溃消失了。 我的应用程序使用ViewPager (屏幕外限制5),并使用getSupportFragmentManager()初始化FragmentStatePagerAdapter 。 每个页面都有自己的片段和后台堆栈。 应用程序在启动时崩溃。 问题仅出现在preLollipop设备和仿真器上。 使用最新支持lbrary(尝试24.0.0也 – 相同结果)Stacktrace: java.lang.IllegalStateException:在android.support的android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1267)的android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1267)没有主机.v4.app.FragmentManagerImpl.dispatchCreate(FragmentManager.java:2138)位于android.support.v4.app.Fragment.onCreate(Fragment.java:1254)的android.support.v4.app.Fragment.performCreate(Fragment.java) :2062)在android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1051)的android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1286)android.support.v4.app上的android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1051)。在Android.support.v4.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:637)的android.support.v4.app.FragmentManagerImpl.execSingleAction(FragmentManager.java:1632)上的BackStackRecord.run(BackStackRecord.java:758) android.support.v4.view.ViewPager.pop上的.support.v4.app.FragmentStatePagerAdapter.finishUpdate(FragmentStatePagerAdapter.java:166) ulate(ViewPager.java:1237)位于android.sview的android.support.v4.view.ViewPager.populate(ViewPager.java:1085)android.sview.v4上的android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1611) .View.measure(View.java:16497)位于android.widget.Linout.measureVertical的android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)上的android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) LinearLayout.java:695)在android.view.measure.View.measure(View.java:16497)的android.widget.Linear.onMeasure(LinearLayout.java:588)android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) )在android.widget.FreeLayout.onMeasure(FrameLayout.java:310)的android.view.measure.View.measure(View.java:16497)android.widget.RelativeLayout.measureChildHorizo​​ntal(RelativeLayout.java:719)android.widget .AlativeLayout.onMeasure(RelativeLayout.java:455)在Android.widge上的android.view.vision.measure(View.java:16497)android.view.measureGroup.measureChildMargins(ViewGroup.java:5125) t.FrameLayout.onMeasure(FrameLayout.java:310)位于android.view.view.measure(View.java:16497)android.view的android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135) .ViewGroup.measureChildWithMargins(ViewGroup.java:5125)位于android.view.measure.View.measure(View.java:16497)的android.view.FreeLayout.onMeasure(FrameLayout.java:310),位于android.view.ViewGroup.measureChildWithMargins( ViewGroup.java:5125)在android.view.measure.View.measure(View.java:16497)的android.widget.FrameLayout.onMeasure(FrameLayout.java:310)android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)在android.widget.LinearLayout.measureChildBayforeLayout(LinearLayout.java:1404)android.widget.Linear.measureVertical(LinearLayout.java:695)android.widget.Linear.onMeasure(LinearLayout.java:588)android.view .View.measure(View.java:16497)位于android.widget.FrameLayout.onMeasure(FrameLayout.java:310)的android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 在com.android.internal.policy.impl.PhoneWindow $ DecorView.onMeasure(PhoneWindow.java:2291)的android.view.View.measure(View.java:16497)android.view.ViewRootImpl.performMeasure(ViewRootImpl.java) :1912)在android.view.ViewRootImpl.measureHversy中的android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1109),在android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:996)的android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1291) .view.ViewRootImpl $ TraversalRunnable.run(ViewRootImpl.java:5600)在android.view.Choreographer $ CallbackRecord.run(Choreographer.java:761)的android.view.Choreographer.doCallbacks(Choreographer.java:574)。在android.view.Handler的android.view.Choreographer $ FrameDisplayEventReceiver.run(Choreographer.java:747)的android.O. .dispatchMessage(Handler.java:95)在android.os.Looper.loop(Looper.java:136)

如何在ViewPager中启用CardView

我尝试在ViewPager中使用CardView,每次我在CardView上向左/向右滑动它都会进入下一个屏幕。 我希望卡片自己删除。 目前作为一个独立的都工作正常,但当我结合时,只有viewpager工作,而不是cardwipe解雇。 我尝试使用下面的代码禁用ViewPager,但此代码也禁用了CardView滑动手势。 我怎样才能使CardView只有手势,当你在两张卡之间滑动时,它应该有ViewPager,因为它没有连接到卡元素。 或者完全禁用ViewPager并将其用作按钮并在CardView上启用滑动。 我非常感谢任何帮助。 提前致谢。 仅供参考:我在ViewPager中尝试过android_horizo​​ntal_listview,它运行正常,就像这样。 对于ViewPager: mPager.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { return true; } }); 对于CardView: SwipeableRecyclerViewTouchListener swipeTouchListener = new SwipeableRecyclerViewTouchListener(mRecyclerView, new SwipeableRecyclerViewTouchListener.SwipeListener() { @Override public boolean canSwipe(int position) { return true; } @Override public void onDismissedBySwipeLeft(RecyclerView recyclerView, int[] reverseSortedPositions) { for (int position : […]

Android setBackgroundResource导致内存不足

我正在开发一个在ViewPager中显示12个视图的游戏手册应用程序。 这是我的自定义PagerAdapter: private class ImagePagerAdapter extends PagerAdapter { private int[] mImages = new int[] { R.drawable.copertinai, R.drawable.blui, R.drawable.azzurroi, R.drawable.rossoi, R.drawable.gialloi, R.drawable.verdei, R.drawable.rosai, R.drawable.grigioi, R.drawable.neroi, R.drawable.arancionei, R.drawable.marronei, R.drawable.violai, R.drawable.ulm }; @Override public int getCount() { return mImages.length; } @Override public boolean isViewFromObject(View view, Object object) { return view == ((RelativeLayout) object); } @Override public Object instantiateItem(ViewGroup […]

如何在EditText和Soft Keyboard之间添加边距?

我想在EditText和Soft Keyboard之间添加10dp的边距。 这是我的XML: 这是我的onCreate() : getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); messageText.setOnTouchListener(new OnTouchListener(){ @Override public boolean onTouch(View v, MotionEvent event) { ((Swipe)getActivity()).getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_UNSPECIFIED); return false; }}); 我正在使用viewpager和全屏主题。 以下EditText位于我的第3个片段中。 我用过android:windowSoftInputMode=”adjustResize|adjustPan”和android:windowSoftInputMode=”adjustResize” ,但什么都没发生。