标签: fragment

固定页眉与页内锚点重叠

如果我在HTML页面中有一个非滚动标题,则固定在顶部,具有已定义的高度:

有没有办法使用URL锚点(#fragment部分)让浏览器滚动到页面中的某个点,但是在没有JavaScript帮助的情况下仍然尊重固定元素的高度?

http://foo.com/#bar
Run Code Online (Sandbox Code Playgroud)
WRONG (but the common behavior):         CORRECT:
+---------------------------------+      +---------------------------------+
| BAR///////////////////// header |      | //////////////////////// header |
+---------------------------------+      +---------------------------------+
| Here is the rest of the Text    |      | BAR                             |
| ...                             |      |                                 |
| ...                             |      | Here is the rest of the Text    |
| ...                             |      | ...                             |
+---------------------------------+      +---------------------------------+

html url anchor fragment

305
推荐指数
19
解决办法
16万
查看次数

从DialogFragment接收结果

我正在使用DialogFragments做很多事情:从列表中选择项目,输入文本.

将值(即字符串或列表中的项)返回给调用活动/片段的最佳方法是什么?

目前我正在制作调用活动实现DismissListener,并为DialogFragment提供对活动的引用.然后,Dialog调用OnDimissactivity中的方法,activity将从DialogFragment对象中获取结果.非常混乱,因为DialogFragment失去对活动的引用,它不能用于配置更改(方向更改).

谢谢你的帮助.

android dialog fragment dismiss android-fragments

227
推荐指数
8
解决办法
11万
查看次数

在显示对话框时,我得到"在onSaveInstanceState之后无法执行此操作"

有些用户报告,如果他们使用通知栏中的快速操作,他们就会收到一个强制关闭.

我在通知中显示了一个快速操作,它调用了"TestDialog"类.在按下"贪睡"按钮后的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");
}
Run Code Online (Sandbox Code Playgroud)

错误是 *IllegalStateException: Can not perform this action after onSaveInstanceState*.

IllegarStateException被触发的代码行是:

snoozeDialog.show(fm, "snooze_dialog");
Run Code Online (Sandbox Code Playgroud)

该类正在扩展"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)
at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:595)
at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:574)
at android.support.v4.app.DialogFragment.show(DialogFragment.java:127)
at com.test.testing.TestDialog.f(TestDialog.java:538)
at com.test.testing.TestDialog.e(TestDialog.java:524)
at com.test.testing.TestDialog.d(TestDialog.java:519)
at com.test.testing.g.onClick(TestDialog.java:648)
at android.view.View.performClick(View.java:3620)
at …
Run Code Online (Sandbox Code Playgroud)

android dialog fragment

110
推荐指数
11
解决办法
4万
查看次数

“setHasOptionsMenu(Boolean): Unit”已弃用。在 Java 中已弃用

如何在 Android 片段中声明菜单?我以前使用的方法现在已被弃用。

起初:

    override fun onCreateView(...): View {
        setHasOptionsMenu(true)
    }
Run Code Online (Sandbox Code Playgroud)
 override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
        super.onCreateOptionsMenu(menu, inflater)
        this.menu = menu
        inflater.inflate(R.menu.menu, this.menu)
    }
Run Code Online (Sandbox Code Playgroud)

android menu fragment android-inflate kotlin

96
推荐指数
5
解决办法
4万
查看次数

如何使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);

        return dialog;
    }
}
Run Code Online (Sandbox Code Playgroud)

fragment_add_note_dialog.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/white"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin" >

    <EditText
        android:id="@+id/addNoteEditText"
        android:layout_width="match_parent" …
Run Code Online (Sandbox Code Playgroud)

android fragment android-fragments android-dialogfragment

78
推荐指数
9
解决办法
6万
查看次数

在对话框外面按下时如何关闭DialogFragment?

我正在使用a DialogFragment,虽然我已成功设置图像以在关闭时关闭(即关闭)对话框,但当用户点击对话框外的任何地方时,我很难找到解除对话框的方法,就像它一样正常的对话.我以为会有某种

dialogFragment.setCanceledOnTouchOutside(true);
Run Code Online (Sandbox Code Playgroud)

打电话,但我没有在文档中看到.

这有可能DialogFragment吗?或者我在错误的地方寻找?我尝试拦截"父母"活动中的触摸事件,但除了没有得到任何触摸事件外,它对我来说似乎不对.

android fragment dismiss

75
推荐指数
5
解决办法
4万
查看次数

FragmentContainerView 作为 NavHostFragment

似乎FragmentContainerView不能立即使用?

<androidx.fragment.app.FragmentContainerView
        class="androidx.navigation.fragment.NavHostFragment"
        android:id="@+id/fragment_nav_host"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:defaultNavHost="true"
        app:navGraph="@navigation/nav_app" />
Run Code Online (Sandbox Code Playgroud)

这是我使用的代码fragment-ktx:1.2.0-rc01,我总是收到此错误:

Caused by: java.lang.IllegalStateException: Activity ...MainActivity@797467d does not have a NavController set on 2131296504
Run Code Online (Sandbox Code Playgroud)

仅使用<fragment>作品和 AFAIK,它应该被替换为FragmentContainerView.

我是不是遗漏了什么,或者有人可以FragmentContainerView用作NavHostFragment?

非常感谢!

navigation android fragment

75
推荐指数
3
解决办法
2万
查看次数

在fragmentpageradapter中重用片段

我有一个浏览片段的viewpager.我的FragmentPagerAdapter子类在getItem方法中创建了一个看似浪费的新片段.是否有一个FragmentPagerAdapter相当于convertViewlistAdapter,使我重新使用已创建的片段?我的代码如下.

public class ProfilePagerAdapter extends FragmentPagerAdapter {

    ArrayList<Profile> mProfiles = new ArrayList<Profile>();

    public ProfilePagerAdapter(FragmentManager fm) {
        super(fm);
    }

    /**
     * Adding a new profile object created a new page in the pager this adapter is set to.
     * @param profile
     */
    public void addProfile(Profile profile){
        mProfiles.add(profile);
    }

    @Override
    public int getCount() {
        return mProfiles.size();
    }

    @Override
    public Fragment getItem(int position) {
        return new ProfileFragment(mProfiles.get(position));
    }
}
Run Code Online (Sandbox Code Playgroud)

android fragment android-compatibility android-fragments

70
推荐指数
4
解决办法
4万
查看次数

片段内部类应该是静态的

我有一个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
    public Dialog onCreateDialog(Bundle savedInstanceState) {
      // Use the Builder class for convenient dialog construction
      AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
      builder.setMessage(message).setPositiveButton("Go back", new …
Run Code Online (Sandbox Code Playgroud)

android fragment android-dialogfragment

69
推荐指数
4
解决办法
5万
查看次数

如何在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" />
Run Code Online (Sandbox Code Playgroud)

现在,我需要获取此片段并进行转换,以便我可以操作它并显示更新.我该怎么办?!

编辑:我想我已经设法获得片段,但是当我更改一些变量时,更改不会出现!

android fragment

68
推荐指数
2
解决办法
5万
查看次数