Articles of android fragments

在从片段导航到另一个片段时隐藏键盘

我有一个包含编辑文本的片段。 当编辑文本被按下时,键盘正在显示。 当按下上angular的保存button时,应用程序返回到前一个片段,但键盘仍然存在。 我想在导航到前一个片段时隐藏键盘。 请注意,我试过这个解决scheme: closures/隐藏Android软键盘 。 InputMethodManager imm = (InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(myView.getWindowToken(), 0); 我试图在onCreate方法中使用这两个片段。 我也尝试在布局中隐藏软键盘: android:windowSoftInputMode="stateAlwaysHidden" 不幸的是,这些都没有奏效。 我会张贴一些图片,但我没有足够的声望呢。 我会感谢任何有build设性的帮助和意见,不要忘记:“聪明的人可以从愚蠢的问题中学到更多的东西,而不是愚蠢的人从聪明的问题中学习”。 🙂 问候,亚历山德拉

Android:片段如何获取Activity的全局variables

我有一个全局variablesint x的活动,怎么能得到他的活动variablesx的当前值?

协调员布局与工具栏在片段或活动

随着新的devise库,有几个新的布局,改变了很多,如果开发商愿意,工具栏的行为。 由于不同的片段具有不同的行为和目标,例如具有折叠工具栏的画廊片段显示重要的照片,或者没有滚动视图的片段不需要用于隐藏工具栏的appbarlayout,在活动中具有单个工具栏certificate困难。 所以,这个,我应该把工具栏移动到每个片段? 如果是这样的话,我必须在每次显示一个片段时设置supportActionBar,并且还要引用片段中的活动,从而使片段的独立性无效。 如果我单独将工具栏留在活动中,则必须为每个片段中的每种行为定义多个布局。 什么是最好的方法?

Android – 片段.replace()不会replace内容 – 放在最上面

活动: FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); Fragment1 fragment = new Fragment1(); Fragment2 fragment2 = new Fragment2(); transaction.replace(R.id.Fragment1, fragment); transaction.addToBackStack(null); transaction.commit(); FragmentTransaction transaction2 = getSupportFragmentManager().beginTransaction(); transaction2.replace(R.id.Fragment1, fragment2); transaction2.addToBackStack(null); transaction2.commit(); 在视图中的代码: <fragment android:id="@+id/Fragment1" android:name="com.landa.fragment.Fragment1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_below="@+id/include1" /> 问题是,内容并没有真正被取代 – 它被放在顶部(所以它重叠)。 当我点击后,第一个片段得到正确显示(没有第二个),但最初都是可见的(我只希望最后一个可见)。 我在这里错过了什么?

Android 2.2.1,2.3,2.0中的碎片。 这可能吗?

基本上我想知道如果我们可以在Android操作系统<3.0的设备中有片段布局。 我的应用程序顶部有5个不同的button,开始总是第一个button被默认点击,所以这些button下方的视图是第一个视图。 现在当你点击它旁边的第二个button时,我不希望标题图像被刷新,但它下面的视图需要刷新。 所以它像更新标题图像button下面的片段。 所以我们可以在OS <3.0的设备上安装Android的片段。 萨纳。

Android的DialogFragment进度条

我到处search,找不到解决这个问题的办法。 基本上我有一个login屏幕,我试图让一个进度微调,当它login到服务器(通过一个线程)显示,然后在login成功后closures它。 它必须在改变方向的同时工作。 我正在使用Android兼容性包中的DialogFragment来创build一个进度条(无法find任何文档, 仅用于基本的\ alert对话框 ),因为showDialog()现在已经被弃用了。 现在我只是显示一个自定义消息框作为login微调。 综上所述: 如何使用DialogFragment设置“进度”微调器。 如何改变方向后在另一个线程中解除它。

有没有办法从堆栈顶部获取片段?

我的MainActivity中有一个ListFragment。 这是我如何设置我的片段对象。 FragmentManager fragmentManager = activity.getSupportFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); Fragment newFragment = new MyFragment(); fragmentTransaction.replace(R.id.framecontainer, newFragment, "tag"); fragmentTransaction.addToBackStack(null); fragmentTransaction.commit(); 问题是当用户按下返回button时,我不得不通过调用至less改变操作栏和菜单 getActionBar().setTitle(title); getActionBar().setDisplayHomeAsUpEnabled(isEnabled); invalidateOptionsMenu(); 我必须知道当前显示哪种片段,以便我知道如何设置操作栏。 我将片段中的设置选项存储为参数。 String title = fragment.getArguments().getString("KEY_TITLE"); boolean isEnabled = fragment.getArguments().getBoolean("KEY_ISENABLED"); 我search相关的问题,我意识到我可以通过调用来获取片段 MyFragment fragment = (MyFragment) getSupportFragmentManager() .findFragmentByTag("tag"); 但是,我必须将所有标记存储在自定义堆栈中,并且在用户按下onBackPressed()button时每次调用pop onBackPressed() 。 所以,我的问题是, 有没有办法让我直接从堆栈中获取当前可见的片段? 注意:请记住,片段types是不同的,不只是MyFragment。

如何销毁FragmentStatePagerAdapter中的旧片段

我想实现这个: 我使用带有FragmentStatePagerAdapter的ViewPager。 我从这个页面的例子开始: http://developer.android.com/reference/android/support/v4/app/FragmentStatePagerAdapter.html 这是我的ViewPager适配器: public static class MyAdapter extends FragmentStatePagerAdapter { public MyAdapter(FragmentManager fm) { super(fm); } @Override public int getCount() { return NUM_ITEMS; } @Override public Fragment getItem(int position) { return ArrayListFragment.newInstance(position); } @Override public void destroyItem(ViewGroup container, int position, Object object) { super.destroyItem(container, position, object); } } 我的ViewPager的每一页都包含一个带有一些数据的ListView。 在ViewPager切换到新页面的那一刻,它将非常快地增加RAM内存。 我应该如何删除旧的碎片? 我也使用这个,但它什么都不做: public […]

android.support.v4.app.getFragmentManager()返回null?

这是我的Stacktrace: FATAL EXCEPTION: main java.lang.NullPointerException at com.example.test.fragments.LoadingFragment$1.run(LoadingFragment.java:66) at android.os.Handler.handleCallback(Handler.java:725) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5041) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) at dalvik.system.NativeStart.main(Native Method) 我的片段66行: FragmentTransaction ft = fm.beginTransaction(); FM是这样得到的: android.support.v4.app.FragmentManager fm = getFragmentManager(); 我的片段扩展android.support.v4.app.Fragment ,这些是我的import: import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentTransaction; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; 我从来没有见过,我得到一个FragmentManager null任何人有一个想法?

findFragmentByTag()在使用replace()方法执行FragmentTransaction之后返回null

我的Android应用程序包含三个片段:A,B和C. 它们被加载到MainActivity布局中定义的两个容器中。 当应用程序启动时,它显示在left_container中加载的fragmentA和在right_container中的fragmentC 。 如果按下fragmentA中的button, FragmentTransaction将通过FragmentB更改FragmentC 。 目前一切正常。 但是,当我尝试使用 findFragmentByTag() 获取对加载的fragmentB的引用时出现问题 ,因为它返回null 。 我已经使用了FragmentTransaction的方法replace,我用commit()完成了,但是没办法调用FragmentB方法。 我的代码: MainActivity.java: public class MainActivity extends Activity{ static String fragmentTag = "FRAGMENTB_TAG"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //Adds the left container's fragment getFragmentManager().beginTransaction().add(R.id.left_container, new FragmentA()).commit(); //Adds the fragment A to the left container //Adds the right container's fragment […]