Tag: 片段

Android ICS API是否具有与ViewPager支持库相同的本机特性?

我search了一下寻呼机的片段,我在ICS API上开发。 我知道关于ViewPager和早期版本的所有支持库,但我不明白为什么我应该使用支持库考虑事实,我使用api的最新版本,并不打算支持早期版本。 我必须自己写“ViewPager”,还是有没有在api中看到的东西?

如何使DialogFragment宽度为Fill_Parent

你好我正在一个android应用程序,我正在使用DialogFragment来显示对话框,但其宽度是非常小的。 我怎样才能使这个宽度fill_parent它? public class AddNoteDialogFragment extends DialogFragment { public AddNoteDialogFragment() { // Empty constructor required for DialogFragment } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { getDialog().setTitle(getString(R.string.app_name)); View view = inflater.inflate(R.layout.fragment_add_note_dialog, container); return view; } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { Dialog dialog = super.onCreateDialog(savedInstanceState); // request a window without the title dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE); […]

如何确定从后台堆栈中恢复的碎片

一直在寻找这个问题一时无济于事: 如何确定片段正在从后台恢复? 我在FragmentActivity中使用兼容性库和一个ListFragment。 当selectListFragment内的项目时,将启动一个新的Fragment来replaceListFragment。 我注意到,当FragmentActivity被暂停时,Fragment的onSaveInstanceState被调用。 但是,当Fragment通过FragmentTransaction被放入后端堆栈时,onSaveInstanceState不会被调用,那么onCreateView和onActivityCreated的生命周期方法将被调用,并且保存为null savedInstanceState Bundle。 我这样问是因为我想在创build或恢复碎片时加载一些数据,但是当用户回来的时候不是这样。 堆栈中。 我看过如何检查片段是从一个后台堆栈恢复? 但希望增加更多的细节,希望这会煽动一个答案。 编辑:只是注意到http://developer.android.com/reference/android/app/Fragment.html#onSaveInstanceState(android.os.Bundle)说 但请注意:此方法可能在onDestroy()之前的任何时候被调用。 在很多情况下,一个片段可能大部分被拆除(比如放置在没有UI显示的后端堆栈上),但是在其拥有的活动实际上需要保存其状态之前,其状态将不会被保存。 所以onSaveInstanceState肯定是不可能的…

如果我在XML布局中声明一个片段,我该如何将它传递给一个Bundle?

我有一个活动,我已经用一个片段取代。 该活动采取了一个意图,有一些额外的信息,该活动应该显示什么数据。 现在我的活动只是一个包装片段,做了同样的工作,如果我用XML的XML标签声明片段如何获得该包到碎片? 如果我要使用FragmentTransaction将片段放到ViewGroup中,我将有机会在Fragment构造函数中传递此信息,但是我想知道在XML中定义片段的情况。

如何在片段中显示AlertDialog?

我想在我的应用程序中显示一个警告对话框。 我正在使用片段。 我尝试了下面的代码来做到这一点: AlertDialog ad = new AlertDialog.Builder(context) .create(); ad.setCancelable(false); ad.setTitle(title); ad.setMessage(message); ad.setButton(context.getString(R.string.ok_text), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); ad.show(); 但它崩溃了,在logcat中的错误是: 04-18 15:23:01.770:E / AndroidRuntime(9424):android.view.WindowManager $ BadTokenException:无法添加窗口 – 标记null不适用于应用程序 从互联网上我知道崩溃是由于上下文问题。 我已经给了上下文 context = this.getActivity().getApplicationContext(); 我不知道这是什么问题。 有谁能够帮助我?

如何获得在XML布局中添加的片段

我有一个包含如下片段的布局: <fragment android:id="@+id/mainImagesList" android:name="com.guc.project.ImagesList" android:layout_width="match_parent" android:layout_height="62dp" android:layout_below="@+id/addimagebutton" android:layout_weight="1" android:paddingTop="55dp" /> 现在,我需要得到这个片段,并施放它,所以我可以操纵它,并出现更新。 我该怎么做? 编辑:我想我已经设法得到的片段,但是当我改变一些variables,变化不会出现!

如何使用Fragments启动共享元素转换?

我试图在新材料devise规范中描述的具有“共享元素”的片段之间实现转换。 我唯一可以find的方法是ActivityOptionsCompat.makeSceneTransitionAnimation ,我相信它只适用于Activity。 我一直在寻找这个相同的function,但/碎片。

在显示对话框我得到“不能执行此操作后onSaveInstanceState”

有些用户正在报告,如果他们使用通知栏中的快速操作,他们正在接近力量。 我在调用“TestDialog”类的通知中显示一个快速操作。 在按下“snooze”button后的TestDialog类中,我将显示SnoozeDialog。 private View.OnClickListener btnSnoozeOnClick() { return new View.OnClickListener() { public void onClick(View v) { showSnoozeDialog(); } }; } private void showSnoozeDialog() { FragmentManager fm = getSupportFragmentManager(); SnoozeDialog snoozeDialog = new SnoozeDialog(); snoozeDialog.show(fm, "snooze_dialog"); } 错误是IllegalStateException:在onSaveInstanceState后无法执行此操作 。 IllegarStateException被触发的代码行是: snoozeDialog.show(fm, "snooze_dialog"); 该类扩展“FragmentActivity”,“SnoozeDialog”类扩展“DialogFragment”。 以下是错误的完整堆栈跟踪: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1327) at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1338) […]

在对话框外按下时如何closuresDialogFragment?

我正在使用一个DialogFragment ,并且当我DialogFragment时已经成功地设置了一个closures(即closures)对话框的图像时,我很难find方法来解除对话框,当用户点击它之外的任何地方,就像它工作与正常的对话框。 我以为会有某种 dialogFragment.setCanceledOnTouchOutside(true); 调用,但我没有看到在文档中。 DialogFragment可以吗? 还是我看错了地方? 我尝试拦截“父”活动中的触摸事件,但除了没有发生任何触摸事件外,对我来说这似乎不正确。

片段内部类应该是静态的

我有一个FragmentActivity类与内部类应显示Dialog 。 但是我需要把它变成static 。 Eclipse使我能够用@SuppressLint("ValidFragment")来抑制错误。 如果我这样做是不好的风格,可能的后果是什么? public class CarActivity extends FragmentActivity { //Code @SuppressLint("ValidFragment") public class NetworkConnectionError extends DialogFragment { private String message; private AsyncTask task; private String taskMessage; @Override public void setArguments(Bundle args) { super.setArguments(args); message = args.getString("message"); } public void setTask(CarActivity.CarInfo task, String msg) { this.task = task; this.taskMessage = msg; } @Override […]