小编Mic*_*ian的帖子

如何将片段添加到DialogFragment的布局?

我有一个自定义DialogFragment,其中包含布局,一些UI元素和Fragment holder布局.我需要做的是将内容片段膨胀到持有者布局中并在其中提供导航.单击添加的片段内的按钮后,视图将导航到另一个视图.片段将被同一个持有者中的另一个片段替换,contentFragment1即将显示一些数据,点击预览按钮将替换contentFragment1contentFragment2.我读到某处你无法xml用另一个替换硬编码的片段.所以我尝试添加contentFragment1viewholderonActivityCreated()对话片段.但是我收到一个错误,指出R.id.fragmentHolder找不到资源.可能的原因是什么?

这是我的代码DialogFragment:

public class MyDialog extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    Dialog customDialog = new Dialog(getActivity());
    customDialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
    customDialog.setContentView(R.layout.reports_dialog);
    return customDialog;
}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    android.app.FragmentTransaction fragmentTransaction =getFragmentManager().beginTransaction();
    fragmentTransaction.add(R.id.myFragmentHolder, new ReportsListFragment());
    fragmentTransaction.commit();
    super.onActivityCreated(savedInstanceState);
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="400dp"
    android:background="@android:color/transparent" >


    <TextView
        android:id="@+id/textView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:text="This is my header text view …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-fragments android-dialogfragment fragmenttransaction

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

如何在dialogfragment中更改片段

我想DialogFragment用a 做空,LinearLayout然后在里面更改片段LinearLayout.例如,登录时第一个片段是3个按钮(Facebook,谷歌+,电子邮件登录),当有人按下电子邮件时,2.片段有一个布局,EditTexts如果谷歌或Facebook被按下,那么另一个片段出现一个ProgressBar.

这是我的空对话框布局:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent"
    android:background="@drawable/dialog_background">

    <LinearLayout
        android:id="@+id/testFragmentController"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_margin="15dp"></LinearLayout>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

这是第一个片段的代码(我正在使用android注释):

@EFragment(R.layout.dialog)
public class FragmentGeneralDialog extends ClickDialogFragment {

    @ViewById
    LinearLayout testFragmentController;


    @NonNull
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        Dialog dialog = super.onCreateDialog(savedInstanceState);
        dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
        dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
        this.setStyle(R.style.Dialog_No_Border, getTheme());

        return dialog;
    }


    @AfterViews
    void afterViews() {
        loadActivity();
        GlobalData.setFragmentContainer(testFragmentController);
        activity.loadMenuFragment(FragmentSocialDialog_.class, new SlideLeftAnimation());

    }


}
Run Code Online (Sandbox Code Playgroud)

loadMenuFragments(...) 这是:

public <T extends Fragment> T loadMenuFragment(final …
Run Code Online (Sandbox Code Playgroud)

android android-fragments

3
推荐指数
1
解决办法
4287
查看次数

将表达式作为命名参数名称传递

我使用的dateutil.relativedelta()time_unit在我的age-tuple和代码中对应的命名参数,以获得相对时间的样子:

def time_delta(age):
    now = datetime.fromtimestamp(int(time.time()))
    if age.time_unit == "seconds":
        relative_time = now - relativedelta(seconds=int(age.value))
    elif age.time_unit == "minutes":
        relative_time = now - relativedelta(minutes=int(age.value))
    elif age.time_unit == "hours":
        relative_time = now - relativedelta(hours=int(age.value))
    elif age.time_unit == "days":
        relative_time = now - relativedelta(days=int(age.value))
    elif age.time_unit == "weeks":
        relative_time = now - relativedelta(weeks=int(age.value))
    elif age.time_unit == "months":
        relative_time = now - relativedelta(months=int(age.value))
    elif age.time_unit == "years":
        relative_time = now - relativedelta(years=int(age.value))
Run Code Online (Sandbox Code Playgroud)

在Python 2.7中是否有任何方法可以使用以下内容:

relative_time = now …
Run Code Online (Sandbox Code Playgroud)

python python-2.7

3
推荐指数
1
解决办法
211
查看次数