Articles of android fragments

如何将进度对话框设置为在作为片段进行管理时不可取消?

我正在使用作为Fragment管理的ProgressDialog 。 即使我将ProgressDialog设置为不可取消,BACK按钮仍然可以从堆栈中删除该Fragment 。 我的内心课看起来像这样: public static class ProgressDialogFragment extends DialogFragment { private DialogStyle dialogStyle; public static ProgressDialogFragment newInstance(String title, String message) { ProgressDialogFragment fragment = new ProgressDialogFragment(); Bundle args = new Bundle(); args.putString(“title”, title); args.putString(“message”, message); fragment.setArguments(args); return fragment; } public void setDialogStyle(DialogStyle dialogStyle) { this.dialogStyle = dialogStyle; } @Override public ProgressDialog onCreateDialog(Bundle savedInstanceState) […]

popup窗口以显示片段中的某些内容

我试图制作类似popup窗口的东西,当点击片段中的视图时会出现。 我想要这个popup窗口或其他什么,不要让片段变暗,就像Dialog Fragment那样。 而且我还希望popup窗口位于单击视图的位置。 如果它有自己的活动和布局会很好,所以我可以在其中进行一些自定义更改。 你能告诉我一些示例代码吗?

DialogFragment.dismiss与NullPointerException崩溃

我正在做一些后台工作并在我这样做时显示DialogFragment。 完成我的工作并调用相关的回调后,我将关闭该对话框。 当我这样做时,我在Android源代码中遇到了由NPE引起的崩溃,这里: void dismissInternal(boolean allowStateLoss) { if (mDialog != null) { mDialog.dismiss(); mDialog = null; } mRemoved = true; if (mBackStackId >= 0) { getFragmentManager().popBackStack(mBackStackId, FragmentManager.POP_BACK_STACK_INCLUSIVE); mBackStackId = -1; } else { FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.remove(this); if (allowStateLoss) { ft.commitAllowingStateLoss(); } else { ft.commit(); } } } 特别是在这一行: FragmentTransaction ft = getFragmentManager().beginTransaction();

如何以编程方式更改Google Maps v2(支持片段)的宽度和高度?

如何以编程方式更改com.google.android.gms.maps.SupportMapFragment的宽度和高度? 我想你可以将它包装在一个带有match_parent的视图组中,但是如果我不需要,我希望不要嵌套(老实说甚至不确定它是否有效)。 为了给出上下文,我想在地图点击时将地图从一个高度扩展到另一个高度。 mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() { @Override public void onMapClick(LatLng latLng) { expandMap(); // not sure how to do this programatically. } }); 任何帮助都会很棒!

Android:返回上一个片段

我已经实现了Navigation Drawer,它是Activity的子类。 我的应用程序中有很多片段。 我的问题在这里 想象一下有3个片段: Fragment_1:Fragment_2:Fragment_3 当我启动我的应用程序时,Fragment_1被加载当我点击Fragment_1上的一些组件时,我将导航到Fragment_2,依此类推。 就这样 Fragment_1> Fragment_2> Fragment_3 当我从Fragment_2按回键时,我将导航回Fragment_1但是当我从Fragment_3按回键时,我将导航回Fragment_1(而不是Fragment_2) 我在Back Key按下的应用程序中想要这样的东西 Fragment_1 <Fragment_2 <Fragment_3 我使用Fragment,FragmentManager,FragmentTransaction如下: MyFragment fragment = new MyFragment(); FragmentManager fragmentManager = getFragmentManager(); fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).addToBackStack(null)commit(); 我尝试在我的MainActivity中覆盖onBackPressed(): @Override public void onBackPressed() { getFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE); int count = getFragmentManager().getBackStackEntryCount(); if (count == 0) super.onBackPressed(); }

Android支持库27,片段更新?

自从我将项目更新到SDK版本27并将支持库的gradle插件更新到版本27.0.0我需要更改我的代码。 使用26.1.0我可以在我的Fragment ( android.support.v4.app )中使用getContext() (使用Kotlin context )并且我没有可空性问题,但是因为我使用Kotlin我遇到了版本27.0.0的问题,我的所有context调用都不再起作用了,我需要一个安全操作符,就像context!!一样context!! ,但是因为我个人觉得每次我做自己的工作都是一种喧嚣 override fun getContext() = super.getContext()!! 改变的另一件事(突然,这就是我要问的原因)是onCreateView()和onViewCreated() 。 在onCreateView ,inflater不再是null,所以我需要更改我的函数签名以正确覆盖onCreateView(inflater: LayoutInflater?…)到onCreateView(inflater: LayoutInflater…)并且对于createdView参数也是createdView 。 onViewCreated 。 所以现在我想知道为什么,特别是(对于Kotlin)非常丑陋的getContext()更改已经完成并转向https://developer.android.com/sdk/support_api_diff/27.0.0/changes.html 。 但等等,显然他们没有改变它? 所以现在我的问题是,如果我做错了什么或者他们是否真的改变了它,如果是这样,我可能会问他们为什么? 顺便说一句,同样适用于getActivity() ,我认为添加了mHost == null检查, getActivity方法甚至是最终的,所以我不能在那里使用我的解决方法,这使得它非常难看。 实际上在源文件中方法看起来是一样的,但是26.1.0有Kotlin返回typesContext! 和27.0.0返回typesContext? 。

使用ActionBar旋转Android的双片段

我用ActionBar创建了一个简单的Android Activity来切换2个片段。 在旋转设备之前一切正常。 事实上,当我旋转时,我有一个碎片一个在另一个上:前一个活动的一个和第一个。 为什么? 如果旋转破坏并重新创建我的活动,为什么我会获得2个片段? 示例代码: 活动 package rb.rfrag.namespace; import android.app.ActionBar; import android.app.ActionBar.Tab; import android.app.Activity; import android.os.Bundle; public class RFragActivity extends Activity { /** Called when the activity is first created. */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Notice that setContentView() is not used, because we use the root // android.R.id.content as […]

在恢复活动时刷新FragmentStatePagerAdapter上的图像

我创建了一个使用FragmentStatePagerAdapter提供小图库的活动。 但是,当活动恢复时(例如,从其他活动返回后),我无法刷新它。 每次前两张图片都是空白的,只有在我将两张图片刷到一边后,它们才会刷新。 我find的答案都没有起作用(尤其是覆盖getItemPosition() ) 我这样设置: mPagerAdapter = new PhotosPagerAdapter(getSupportFragmentManager()); mPager = (ViewPager) findViewById(R.id.photosViewPager); mPager.setAdapter(mPagerAdapter); 然后我有FragmentStatePagerAdapter类: private class PhotosPagerAdapter extends FragmentStatePagerAdapter{ public PhotosPagerAdapter(FragmentManager fm) { super(fm); } @Override public int getCount() { return photos.size(); } @Override public Fragment getItem(int position) { ImageFragment f = new ImageFragment(position); return f; } @Override public int getItemPosition(Object object) { […]

从FragmentActivity获取Fragment的视图

我有一个FragmentActivity ,我添加了一个Fragment 。 根据某些情况,我想从该片段的布局访问Buttons并更改它们的单击侦听器。 我所做的是: View view = myFragment.getView(); Button myButton = (Button) view.findViewById(R.id.my_button); myButton.setOnClickListener(new MyClickListener()); 但是viewvariables始终为null 。 我如何获得活动的视图?

GridViewPager中的Android Wear WearableListView

我正在构建一个Android Wear应用程序,我想将其呈现为几个可以横向滑动的页面。 为此,我使用GridViewPager和相关联的FragmentGridPagerAdapter,它使用单行进行硬连线。 这适用于在瓷砖之间水平滑动,但是在我的一个片段中,我想使用WearableListView来允许用户在多个动作之间进行选择。 不幸的是,这不起作用,因为看起来GridViewPager阻止任何滑动到达WearableListView。 有没有人知道是否有办法可以使用所描述的组件完成此操作? 我也尝试过使用标准的ViewPager,这样可以让WearableListView滚动得很好,但是水平滑动变得很好,你经常需要滑动几次才能移动视图寻呼机。