Articles of android fragments

在将片段添加到活动后,是否可以将parameter passing给片段?

我知道当你第一次实例化一个片段时,你可以使用setArguments(Bundle)传递参数,并使用setArguments(Bundle)在片段中检索它们。 但是,在我的应用程序中,我有片段,在将它们添加到活动后将被分离并附加多次。 重新附加时,我可能需要传递一个片段参数来修改其内容,然后再重新附加它。 我可以在第一次显示片段时使用setArguments ,但在后续的情况下无法使用。 savedInstanceState在这种情况下不起作用,因为在分离片段之前我不知道参数的值。 我知道我可以在附加设置参数的片段之前实现一个我会调用的方法,但是看起来这可能已经存在于API中了,我只是没有看到它。 是否有内置的东西可以让我这样做,或者我必须自己实现这个? 为了记录,我正在使用支持包(v4)。 非常感谢!

使用片段事务发送Bundle

这是我的代码不起作用: //以这种方式发送包: String topUser = String.valueOf(scores.get(arg2)); Bundle data = new Bundle(); data.putString(“userprofile”, topUser); FragmentTransaction t = getActivity().getSupportFragmentManager() .beginTransaction(); SherlockListFragment mFrag = new ProfileFragment(); mFrag.setArguments(data); t.replace(R.id.main_frag, mFrag); t.commit(); //检索这种方式: Bundle extras = getActivity().getIntent().getExtras(); userName = extras.getString(“userprofile”); 基本上,没有收到数据。 我是在正确的轨道上还是有更好的方法来做到这一点?

片段addToBackStack()和popBackStackImmediate()不起作用

我目前正在构建Android应用程序(14 <= SDK <= 21),使用一个ActionBarActivity和更多Fragments ,例如ListFragment和MapFragment ,它们在单个FrameLayout视图中交换。 ActionBarActivity自动替换/提交片段A.然后,当用户点击一个按钮时,托管活动替换/提交一个新的不同片段B.我的目标是让用户在按下后退按钮时返回片段A 。 现在有些代码了。 主要活动 public class MainActivity extends ActionBarActivity implements StopFragment.OnFragmentInteractionListener, StopItemFragment.OnFragmentInteractionListener { … @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); fragmentManager = getFragmentManager(); fragmentManager.enableDebugLogging(true); … if (fragmentManager.findFragmentById(R.id.content_frame) == null) { StopItemFragment list = StopItemFragment.newInstance(null); //A – extends ListFragment fragmentManager.beginTransaction() .replace(R.id.content_frame, list) .addToBackStack(null) .commit(); } … @Override […]

Android Error Swlating类SwipeRefreshLayout

我正在开发一个应用程序,它使用3个选项卡,每个选项卡都有一个片段,我试图在每个片段中实现SwipeRefreshLayout。 我相信我已经正确地创建了这个,但我继续得到错误: android.view.InflateException: Binary XML file line #1: Error inflating class SwipeRefreshLayout Caused by: java.lang.ClassNotFoundException: Didn’t find class “android.view.SwipeRefreshLayout” on path: DexPathList[[zip file “/data/app/com.ryan.brooks.fropllc.frop.app-1.apk”],nativeLibraryDirectories=[/data/app-lib/com.ryan.brooks.fropllc.frop.app-1, /vendor/lib, /system/lib]] at com.ryan.brooks.fropllc.frop.app.whatsGoingOnFragment.onCreateView(whatsGoingOnFragment.java:23) 现在我完全不知道造成这种情况的原因。 如果有人能帮助我,我将非常感激。 这是我实现SwipeRefreshLayout的片段布局: 这是我的片段类,我在调用SwipeRefreshLayout。 public class WhatsGoingOnFragment extends Fragment { private SwipeRefreshLayout swipeLayout; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout […]

片段,DialogFragment和屏幕旋转

我有一个Activity用这个XML调用setContentView: GroupFragment扩展了Fragment,一切都很好。 但是,我在GroupFragment中显示了一个DialogFragment。 这显示正确,但是当屏幕旋转时,我得到一个强制关闭。 从DialogFragment.show(FragmentManager,String)以外的其他片段中显示DialogFragment的正确方法是什么?

ViewPager wrap_content无法正常工作

我做了一个滚动视图,里面有一个viewpager。 但是viewpager的高度并没有增长。 Wen在viewpager里面的内容是大到内部得到pucht,表是收缩的空间。 我已经搜索了一个解决方案,发现问题是“wrap_content”,如果viewpager被加载则没有内容。 所以viewpager保持屏幕高度。 我find的解决方案不适用于“FragmentPagerAdapter”,所以我编辑了这个问题。 请指出我正确的方向。 Greathings christophe VD 主要布局是这样,底部的时间标记是问题之一: 它需要更多这样的: FragmentPagerAdapter是: import android.content.Context; import android.graphics.pdf.PdfDocument; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class film_tabs_adapter extends FragmentPagerAdapter { private final String[] TITLES = { “Info”, “Comment”, “Cast”, “Muziek”}; String[] Film_Data; public film_tabs_adapter(FragmentManager fm, String[] Film_Data_in) { […]

AccountAuthenticatorActivity和片段

当我使用支持包时,是否有方法使用AccountAuthenticatorActivity的片段? AccountAuthenitactorActivity不是FragmentActivity类的子类,因此当我使用Support包时,我不确定如何使用它。

Android:ViewFlipper或ViewPager – 哪个更好?

我陷入了困境。 我总共有20到25张图像应该像ViewPager一样animation。 现在我有onClick()事件的所有图像,我不知道我是否应该使用ViewPager或ViewFlipper 。 我可以实现这两件事,这里没有问题。 我想要的:我只想提出一个建议,根据我的问题,这将是最好的选择, ViewFlipper或ViewPager ? 我搜索过的内容:我在StackOverflow上经历了不同的链接,即如何提高ViewFlipper / ViewAnimator和ViewFlipper与Fragments的性能 ,但我找不到我想要的东西。 我在某种程度上与ViewPager合作过,但那时我只需要管理3到4个Fragments 。 如果我用它来解决这个问题,这次我必须管理25个Fragments 。 所以我想知道是否有更好的解决方案。 我还对ViewFliper进行了一些研发,并且知道它只有一个我必须管理的Activity但它没有ViewPager具有的animation精度。 请建议我是否应该去ViewPager或ViewFlipper ? 提前致谢。

使用AppBarLayout的Android SupportLib – FrameLayout中的FrameLayout消耗整个屏幕高度

我目前在Android设计支持库的CoordinatorLayout遇到了FrameLayout的问题,而我在创建选项卡时遵循了这篇文章中的说明。 基本上大多数事情按预期工作,容器碎片被夸大到FrameLayout ,他们的标签片段被相关地添加到ViewPager作为标签(需要它这样,因为我有许多片段应该重用布局)。 我正在努力解决的问题是FrameLayout (以及因此也是tab-fragments)消耗整个屏幕高度,因此它与Toolbar和TabLayout重叠。 为了可视化问题,我创建了以下图像: 使用CoordinatorLayout , Toolbar和TabLayout基础布局: 膨胀到container的碎片使用的单独布局: 所有片段都由我的BaseFragment -class(在SO上调用inflater.inflate(getLayoutRes(), null);另一篇文章中膨胀inflater.inflate(getLayoutRes(), null);是导致同样问题的问题) @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(getLayoutRes(), container, false); } 如果我用正常的LinearLayout替换CoordinatorLayout , FrameLayout AppBarLayout按预期在AppBarLayout下面开始,但根据文档 ,大多数function的AppBarLayout需要成为CoordinatorLayout的直接子代。 我可以在FrameLayout添加一个marginTop ,但我想知道是否有适当的解决方案。 提前感谢任何提示!

片段customAnimation在Lollipop中不起作用

我有以下代码来设置片段的进入和退出animation。 final FragmentManager manager = getSupportFragmentManager(); final FragmentTransaction ft = manager.beginTransaction(); ft.setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_left, R.anim.slide_in_left, R.anim.slide_out_right); ft.replace(R.id.container, fragment, tag); ft.addToBackStack(tag); ft.commitAllowingStateLoss(); slide_in_left.xml 对所有其他animation使用相同的方法。 在所有其他版本中工作正常,但问题仅在于Lollipop。 当我们查看函数时 setCustomAnimations (int enter, int exit, int popEnter, int popExit) doc-link , enter和exit工作正常,但popEnter和popExit在Lollipop中失败。 请指导我出了什么问题,并提供适用于Android 2.3到5.1的兼容解决方案 更新: 仔细观察,似乎animation存在,但持续时间没有影响。