Articles of android fragments

如何将碎片从碎片传递到碎片

我在我的应用程序中使用片段。 这是我的第一个片段,只是膨胀一个XML文件: public class FragmentA extends SherlockFragment { Context myContext,appContext; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub myContext = getActivity(); appContext=getActivity().getApplicationContext(); arguments = getArguments(); doctor_id=arguments.getInt("doctor_id"); userType=arguments.getString("userType"); return inflater.inflate(R.layout.left_panel, container,false); } 这是包含片段的left_panel .xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <fragment android:id="@+id/titles" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_weight="1" class="com.example.sample.ListFrag" /> </LinearLayout> 这是我的ListFrag类: […]

如何让工具栏从碎片?

我有与NavigationDrawer ActionBarActivity和使用support_v7 Toolbar作为ActionBar。 在我的一个片段工具栏中有自定义视图。 在其他片段Toolbar应显示标题。 如何让Toolbar实例从碎片定制? 我可以通过getActivity().getActionBar()获得ActionBar,但是如果我为这个实例的ActionBar调用setTitle() ,它什么也不做。 UPD: 在我的情况 ((ActionBarActivity) getActivity()).getSupportActionBar().setTitle(); (正如MrEngineer13所说)在第一个片段创build时不工作,因为我从onHiddenChanged()调用它。 现在我添加更多的onCreateView(),它工作正常。

Android – 片段事务的自定义animation未运行

我正在使用支持包v4的Google API 8(Android 2.2)。 它不会给出任何错误或animation。 交易: FragmentTransaction transaction = manager.beginTransaction(); transaction.replace(R.id.content, myFragment); transaction.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_right); transaction.commit(); animation: slide_in_left.xml <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="700" android:fromXDelta="-100%" android:toXDelta="0%" > </translate> </set> slide_out_right.xml <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="700" android:fromXDelta="0%" android:toXDelta="100%" > </translate> </set> 有人知道这里发生了什么?

Android的SharedPreferences在片段

我正在尝试阅读Fragment内部的SharedPreferences。 我的代码就是我用来获取其他Activity的首选项。 SharedPreferences preferences = getSharedPreferences("pref", 0); 我得到错误 Cannot make a static reference to the non-static method getSharedPreferences(String, int) from the type ContextWrapper 我试图遵循这些链接,但没有运气通过静态方法和静态SharedPreferences 访问 SharedPreferences 。 感谢您的任何解决scheme。

Fragments中的commit()和commitAllowingStateLoss()有什么区别

我在我的项目中使用提交方法,它build立了片段。 无论如何,有时我得到IllegalStateException: Can not perform this action after onSaveInstanceState错误,我找不到任何好的解决scheme,但只是这个方法commitAllowingStateLoss() 。 我改变了提交functioncommitAllowingStateLoss()但没有使用它很长时间来testing,所以这个function可以帮助我吗? 主要的问题是, commit()和commitAllowingStateLoss()什么commitAllowingStateLoss() ?

失败保存状态 – 目标不在片段pipe理器(setTargetFragment)

我有一个猴子崩溃, java.lang.IllegalStateException: Failure saving state: FragmentB has target not in fragment manager: FragmentA at android.support.v4.app.FragmentManagerImpl.saveAllState(FragmentManager.java:1561) at android.support.v4.app.FragmentActivity.onSaveInstanceState(FragmentActivity.java:475) at com.acme.ParentActivity.onSaveInstanceState(Unknown Source) 基本上FragmentA加载FragmentB和setTargetFragment被调用来设置FragmentB的目标片段。 然后,FragmentB只需在其onCreate方法中调用getTargetFragment ,并在需要时挂起到目标。 现在我没有做任何的onSaveInstanceState调用与目标片段的任何设置为空,使任何saveFragmentInstanceState , putFragment等调用方面的任何saveFragmentInstanceState 。 问题是我应该做些什么吗? 提前致谢, 彼得。 **编辑1 **我正在使用旧版本的支持库,并有一种感觉,这可能会在最新版本中修复,将进一步testing,并提供进一步的更新如果是这样的话。 然而,仍然有兴趣知道我是否应该对目前没有做的目标片段做任何事情。 **编辑1 **支持库的版本8(未尝试其他)修复。

Android材质devise转换

我想按照Google的“材质devise”中的说明复制转场。 这是预览的链接 ,但基本上我关心的video是这两个: http://material-design.storage.googleapis.com/videos/animations-meaningfultransitions-hierarchical_transitions_topLevel_large_xhdpi.webm http://material-design.storage.googleapis.com/videos/animation-meaningfultransitions-view_contact_large_xhdpi.webm 我的问题是什么是UI的容器? 这是一个新的活动哪个onCreate有animation的每个元素或是一个片段? 特别是在第二个例子中,第一个Activity有一些动作,所以onClick里面有一个animation,它也创build了第二个动作? (注意点击的名字也会移动,所以这不应该是一个新的活动) 换句话说,如果我想复制这个,布局(+活动,片段)应该是什么?

为Fragment / ViewPager设置设置默认选项卡

如何在FragmentActivity首次创build时设置默认选项卡? 我有5个选项卡,并希望它打开到选项卡2,而不是1.它似乎应该是比它更容易! @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.fragment_layout); mSectionsPagerAdapter = new SectionsPagerAdapter( getSupportFragmentManager()); final ActionBar actionBar = getActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); mViewPager = (ViewPager) findViewById(R.id.viewpager); mViewPager.setAdapter(mSectionsPagerAdapter); mViewPager .setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() { @Override public void onPageSelected(int position) { actionBar.setSelectedNavigationItem(position); } }); for (int i = 0; i < mSectionsPagerAdapter.getCount(); i++) { actionBar.addTab(actionBar.newTab() .setText(mSectionsPagerAdapter.getPageTitle(i)) .setTabListener(this)); } } public […]

Android:片段:setContentView的替代

我正在尝试使用fragments重写现有项目,以便在平板电脑上移植我的应用程序。 我正在用fragmentsreplace活动。 问题是,我不知道什么是相当于setContentView方法? 除了重写onCreateView之外,是否有任何方法可以创buildFragment's视图?

在片段android创build列表视图

作为标题,我想在Fragment中用自定义行创build一个listview。 我的代码如下。 片段类 public class PhotosFragment extends Fragment{ public PhotosFragment(){} @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_photos, container, false); ArrayList<ListviewContactItem> listContact = GetlistContact(); ListView lv = (ListView)getActivity().findViewById(R.id.lv_contact); lv.setAdapter(new ListviewContactAdapter(getActivity(), listContact)); return rootView; } private ArrayList<ListviewContactItem> GetlistContact(){ ArrayList<ListviewContactItem> contactlist = new ArrayList<ListviewContactItem>(); ListviewContactItem contact = new ListviewContactItem(); contact.SetName("Topher"); contact.SetPhone("01213113568"); […]