在FragmentTransaction的Android文档中,我注意到了两个非常相似的方法: detach和remove 。 在那里的描述似乎没有提供什么时候使用每个,并从我可以告诉他们似乎是相同的。 那么,这两种方法有什么区别呢?
我有一个ViewPager挂钩到显示三个片段的FragmentPagerAdapter。 当ViewPager从当前位置滑动多次时,ViewPager似乎会破坏托pipe片段的视图。 这些视图都是简单的列表,这种优化是完全不必要的,所以我想禁用它。 这是造成一些视觉问题,因为列表有布局animation应用到他们和这些animation被重播后,他们已经被破坏和重新创build。 它还会每次显示滚动条介绍animation(滚动条可以简单地显示,以指示滚动是可能的),这可能会分散注意力,并且用户当前的滚动位置在该过程中丢失。 它也不会加载第三个片段,直到第一次刷卡发生,这是有问题的,因为每个片段处理自己的服务调用,并且我希望在活动加载的同时,所有三个片断都会closures。 延迟第三次服务呼叫并不理想。 有没有什么办法说服ViewPager停止这种行为,只是把我所有的片段保存在内存中?
我试图根据input字段, ArrayList和ListView放在一起的购物清单应用程序。 该应用程序将基于Fragments 。 但是,我遇到了一个问题,我不知道如何解决它。 我在Google和StackOverflow上都find了一些信息。 但是,我没有得到它的工作。 现在希望我可以得到我的代码的帮助。 我在Android开发方面相对缺乏经验。 提前致谢 Main.java import java.util.ArrayList; import android.app.Fragment; import android.app.FragmentManager; import android.app.FragmentTransaction; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.view.Menu; import android.view.MenuItem; public class Main extends FragmentActivity { ArrayList<Detail> items = new ArrayList<Detail>(); FragmentManager FM; FragmentTransaction FT; Input input = new Input(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); […]
我正在使用ViewPager b / w Fragments ,但我可以使用ViewPager轻扫b / w Views简单的xml布局? 这是我的页面Adapter用于在片段之间滑动的ViewPager: import java.util.List; import com.app.name.fragments.TipsFragment; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.app.FragmentTransaction; import android.view.ViewGroup; public class PageAdapter extends FragmentPagerAdapter { /** * */ List<Fragment> fragments; public PageAdapter(FragmentManager fm,List<Fragment> frags) { super(fm); fragments = frags; } @Override public Fragment getItem(int arg0) { // TODO Auto-generated method […]
android.app.Fragment和android.support.v4.app.Fragment之间有什么区别,以及每个应该使用的情况是什么?
我已经在onCreateView放置了setHasOptionsMenu(true) ,但是我仍然无法调用片段内的onCreateOptionsMenu 。 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { setHasOptionsMenu(true); return inflater.inflate(R.layout.facesheet, container, false); } 以下是我的onCreateOptionsMenu代码。 @Override public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) { getSupportMenuInflater().inflate(R.menu.layout, menu); return (super.onCreateOptionsMenu(menu)); } 我得到的错误消息: types为Fragment的onCreateOptionsMenu(Menu)方法必须覆盖或实现超types方法。
我有一些需要显示常规对话框的片段。 在这些对话框中,用户可以select是/否的答案,然后片段应该相应的行为。 现在, Fragment类没有一个onCreateDialog()方法来覆盖,所以我想我必须在包含Activity外部实现对话框。 没关系,但Activity需要以某种方式向选定的答案报告片段。 我当然可以在这里使用一个callback模式,所以这个片段在一个监听器类的Activity上注册自己,Activity会通过这个回报答案,或者类似的东西。 但是,对于一个简单的任务来说,这似乎是一个相当大的混乱,因为在片段中显示“简单的”是 – 否对话框。 而且,这样我的Fragment就不会自给自足了。 有没有更干净的方法来做到这一点? 编辑: 这个问题的答案并没有真正解释如何使用DialogFragments从碎片显示对话框。 所以AFAIK,要走的路是: 显示片段。 在需要的时候,实例化一个DialogFragment。 使用.setTargetFragment()将原始片段设置为此DialogFragment的目标。 用原始片段的.show()显示DialogFragment。 当用户在这个DialogFragment上select一些选项时,通知原始片段有关这个select(例如,用户点击'是'),你可以用.getTarget()获得原始片段的引用。 closuresDialogFragment。
我还没有find像Fragment类中的setTag(String tagName)方法。 设置我find的Fragment标签的唯一方法是做一个FragmentTransaction并传递一个标签名称作为参数。 这是通过代码显式设置Fragment标签的唯一方法吗?
我在onCreate (一个开始,一个在方法结尾)放了几个断点,并且在onCreate的开头也放了一个断点。 首先调用onCreate方法,并在完成之前调用onCreateOptionsMenu 。 我想分开我的应用程序中的Fragment导航代码,所以我有一些对象,我委派onCreateOptionsMenu取决于如果应用程序正在手机/平板电脑上运行(我使用屏幕大小来确定这一点,我的布局大屏幕文件有一个视图,我检查后布局充气)。 我遇到的问题是,我在onCreate中创build这些对象,并且当我引用onCreateOptionsMenu的对象时,我得到一个空指针exception。
下面是我的代码,它有3 Fragment classes每个embeddedViewPager的3个选项卡。 我有一个菜单选项。 如onOptionsItemSelected() ,通过select一个选项,我需要更新当前可见的片段。 要更新我必须调用片段类中的方法。 有人可以build议如何调用该方法吗? public class MainActivity extends ActionBarActivity { ViewPager ViewPager; TabsAdapter TabsAdapter; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ViewPager = new ViewPager(this); ViewPager.setId(R.id.pager); setContentView(ViewPager); final ActionBar bar = getSupportActionBar(); bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); //Attaching the Tabs to the fragment classes and setting the tab title. TabsAdapter = new TabsAdapter(this, ViewPager); TabsAdapter.addTab(bar.newTab().setText("FragmentClass1"), […]