Articles of android fragments

点击多个PlaceAutoCompleteFragment即可打开

我正在使用Google的PlaceAutoCompleteFragment,这是我目前正在开发的一个项目。 当我点击PlaceAutoCompleteFragment很快,它会打开我的应用程序,这真的很烦人的多个覆盖。 我怎样才能防止打开多个覆盖? 我的代码片段如下: if (autocompleteFragment == null) { autocompleteFragment = (PlaceAutocompleteFragment)getFragmentManager().findFragmentById(R.id.place_autocompletehome_fragment); } autocompleteFragment.setOnPlaceSelectedListener(new PlaceSelectionListener() { @Override public void onPlaceSelected(Place place) { // TODO: Get info about the selected place. try { Log.i("esty", "Place: " + place.getName()); } catch (Exception e) { Log.e("esty", "Error: " + e.getMessage()); } } @Override public void onError(Status status) { […]

使用视图分页器重新加载片段中选定的选项卡上的数据

我有我的片段内查看页面,但我想重新加载选定的选项卡上的数据。我尝试返回PositionNone在我的FragmentPagerAdapter的GetItemPosition方法,但它不起作用。 我试着添加notifyDataSetChanged(); 在选中的选项卡上,但会引发空指针exception。 我甚至尝试设置viewPager.setOffscreenPageLimit我设法find链接: replaceViewPager中的碎片,但它是在Java。 我已经设法将大部分的代码转换为C#,但被困在评论的代码。 我不知道如何调用侦听器,并在同一时间实例化类? 有很多类似的问题,但不幸的是在Xamarin Android中没有一个。 我需要在xamarin android中做到这一点。 任何帮助将不胜感激。 这是我的FragmentAdapter public class TabsFragmentPagerAdapter : FragmentPagerAdapter { private readonly Android.Support.V4.App.Fragment[] fragments; static readonly int NUM_ITEMS = 2; private readonly Android.Support.V4.App.FragmentManager FragmentManager; private Android.Support.V4.App.Fragment mFragmentAtPos0; private readonly ICharSequence[] titles; public TabsFragmentPagerAdapter(Android.Support.V4.App.FragmentManager fm, Android.Support.V4.App.Fragment[] fragments, ICharSequence[] titles) : base(fm) { this.fragments = fragments; this.titles = […]

深度寻呼变压器就像SnapChat一样

我试图与DepthPageTransformer一样实施ViewPager就像Snapchat应用程序。 在SnapChat应用程序中,有一个摄像头屏幕始终在ViewPager中心,从左或右滑动将其他片段带到摄像头屏幕上。 我从这个链接find了DepthPageTransformer代码。 但是这个演示的问题在于它从后面带来了所有的下一个屏幕视图。 就像SnapChat我有一个相机屏幕在中心,两个屏幕在左上方,两个屏幕从右上angular在相机屏幕上。 那么,我该如何创build一个PageTransformer ,它会在我的中心屏幕的顶部(这是Camera)的左侧或右侧带来碎片?

带指示器的ViewPager,没有Android的支持库

现在,我正在使用ViewPagerIndicator在我的程序中使用指示器进行轻扫,并且它像魅力一样工作。 但是,由于Google正在向Fragments的方向推进越来越多,而不使用Android支持库,并且PreferenceFragments在支持库中不可用,所以我想知道是否有类似于使用标准Android库的ViewPagerIndicator。

在片段之间滑动时消失的操作栏button

我有一个应用程序在一个操作栏中的多个选项卡,每个选项卡有一个不同的选项菜单图标集,显示在操作栏。 有些标签有两个图标,有些没有。 问题是,当我在屏幕之间滑动时,单个屏幕的button可能会显示或不显示。 即在一个应该有两个图标的屏幕上,操作栏中将没有图标! 然而,当我点击标签时,屏幕总是显示正确的图标。 我试图在debugging器中分析问题。 我确定FragmentPagerAdapter正确地为新select的Fragment调用了setMenuVisibility(true) ,而其他片段则通过setMenuVisibility(false)调用。 我无法findbutton的外观/消失的确切模式。 我可以在两个屏幕之间左右滑动,每个屏幕有两个不同的button。 这个问题会在1到20次刷卡后发生。 通过用一个图标滑动到屏幕,然后回到具有两个图标的屏幕,消失似乎变得更加严重。 我已经尝试将调用添加到Activity.invalidateOptionsMenu()但它似乎没有影响。 例如,我将这个调用添加到我的TabAdapter的onPageScrollStateChanged(),这是在滑动animation完成后调用的。 我也试过把这个添加到碎片的onResume()或TabAdapter.onTabSelected()完成后,无济于事。 我使用的ActionBarSherlock 4.1.0(和我已经取代了最新的android-support-v4.jar由于不同的问题)。 我的活动扩展SherlockFragmentActivity并简单地实例化一个ViewPager 。 我重写了ViewPager适配器的FragmentPagerAdapter (遵循ViewPager Android文档上的标准示例)。 我的手机运行Android 2.3.5。

在回收站视图片段中执行上下文动作模式的问题

我从一堆教程中一起入侵了我的第一个应用程序。 在他们中的一个的帮助下,我在主要活动使用的片段内实现了一个RecyclerView。 现在我发现了另一个教程 ,我想用它来实现与上下文动作模式的多选。 最大的问题是,教程没有使用片段。 我试图重写代码以适应片段。 我现在在一个点,我没有在Android Studio中的任何错误,并运行应用程序,但是当我真的做LongClickselect一个项目,它崩溃与NullPointerException: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.view.ActionMode.setTitle(java.lang.CharSequence)' on a null object reference 我完全失去了为什么会发生这种情况,以及一般的多选题。 我认为每个涉及的类的相关部分是: Adapter.java: public class Adapter extends SelectableAdapter<Adapter.ViewHolder> { private ArrayList<Meal> items = new ArrayList<>(); private Context context; private ViewHolder.ClickListener clickListener; public Adapter(ViewHolder.ClickListener clickListener) { super(); this.clickListener = clickListener; } @Override public ViewHolder onCreateViewHolder(ViewGroup […]

在ViewPager Fragment中使用NestedScrollView在CoordinatorLayout Android中突然滚动

我在CoordinatorLayout面对ViewPager一个主要的滚动问题。 目前的情况: app:appbarScrollingViewBehaviour在ViewPager上ViewPager 。 ViewPager片段将NestedScrollView作为其父级。 片段布局包含水平RecyclerView 。 当我通过触摸RecyclerView向上滚动时,应用程序栏不会滚动,而只会发生嵌套滚动。 当我通过触摸视图的其余部分进行滚动时, CoordinatorLayout滚动。 6)也嵌套滚动中途停止,并切断内容。 我已经尝试过了: 将ViewPager放在NestedScrollView ,并将app:appbarScrollingViewBehaviour属性设置为NestedScrollView 。 由于RecyclerView无法确定其高度,因此完全切断片段内容。 在RecyclerView上设置setAutoMeasureEnabled(true) ,仍然无法修复高度。 和其他许多方法。 请帮助解决这个问题。 目前的行为可以在上传的.gif中看到。 我也张贴我的代码活动布局和片段布局和RecyclerView行布局。 谢谢 activity.xml: <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:Customs="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/main_content" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/new_color_primary_skim"> <android.support.design.widget.AppBarLayout android:id="@+id/appbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/transparent"> <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/collapsingLayout" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" android:elevation="0dp" app:layout_scrollFlags="scroll|exitUntilCollapsed" android:minHeight="?attr/actionBarSize"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:fitsSystemWindows="true" app:layout_scrollFlags="scroll|enterAlways" android:layout_height="?attr/actionBarSize"> <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView […]

FragmentStatePageAdapter复制ActionBar菜单项

我有一个FragmentStatePageAdapter(我用作ViewPager的适配器)和操作栏中的菜单项的问题。 当我启动应用程序,一切都很好。 如果我将任务移动到后台(例如,按HOMEbutton),我开始做些事情,直到活动结束,然后当我回到我的应用程序(通过启动器或通知我创build),一切都很好,除了有在操作栏中复制菜单项。 重要的细节是唯一重复的项目是在ViewPager中使用的每个片段的onCreateOptionsMenu()中创build的项目。 如果我用FragmentPageAdapter replaceFragmentStatePageAdapter项目不复制,但片段不显示在ViewPager(getItem()函数从适配器不会被调用,所以它不会返回任何片段)。 有任何想法吗? 一种避免FragmentStatePageAdapter复制菜单项的方法? 也许使用FragmentPageAdapter,但修改显示片段? 我的碎片修改? 这里是我的应用程序的一些代码片段… 在片段内如何创build菜单项: @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { /* Create play button */ final MenuItem mPlay = menu.add(R.string.play_all); mPlay.setIcon(R.drawable.ic_play_all); mPlay.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); mPlay.setOnMenuItemClickListener(new OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { final List<Song> songs = getSongs(); if (songs.size() == 0) { /* Show message */ […]

在ViewPager中引用片段

我在ViewPager中引用我的片段有问题。 我想这样做,因为从我的活动,我想在指定的位置刷新一个片段(如目前显示的片段)。 目前我有这样的事情: public static class MyPagerAdapter extends FragmentPagerAdapter { private static final String TAG = "MyPagerAdapter"; private static HashMap<Integer, EventListFragment> mPageReferenceMap = new HashMap<Integer, EventListFragment>(); public MyPagerAdapter(FragmentManager fm) { super(fm); } @Override public int getCount() { return NUM_ITEMS; } @Override public Fragment getItem(int position) { Log.i(TAG, "getItem: "+position); int dateOffset = position-1; EventListFragment mFragment […]

当Fragment.instantiate优于MyFragment.newInstance或新的MyFragment()

我是代码审查其他人的ViewPager的实施。 他有一个属于每个视图的片段类的数组。 里面getItem(诠释我)他会写MyFragment.newInstance(),我认为没有问题。 但是,查看谷歌文档的ViewPager,他们在他们的例子中使用Fragment.instantiate。 除了类信息的设置方式之外,是否有使用实例化而不是调用newInstance(arg)或空构造函数的devise优点? 链接: Fragment.instantiate