xamarin android:查看寻呼机片段滑动如何

时间:2017-02-07 12:57:53

标签: listview android-fragments xamarin android-viewpager xamarin.android

我使用visual studio 2015和xamarin。 我有使用xamarin android的经验。

我需要做的是: 实现具有3个屏幕的应用程序,可以在这些屏幕之间滑动: 1)报告屏幕 2)主屏幕 3)细节屏幕

好吧,我已经意识到一个带有viewPager的应用程序,这三个片段=>所有的作品实际上......:)

但目标已经改变,现在我必须首先加载包含列表的主屏幕。 好的我已经这样做了 viewPager.SetCurrentItem(1,true);

viewPager.SetCurrentItem(1, true);

以及所有作品,我可以滑动到主页或报告或详细信息

但是我的最后一个问题就是这个,当我点击列表视图来加载细节片段时我需要..但我不能!!!!

我尝试使用fragmentManager.Replace进行一些操作但是我的所有测试都崩溃了!

// inside listview item click
DetailFragment detail = new DetailFragment();

            //
            Android.Support.V4.App.FragmentTransaction ft = this.FragmentManager.BeginTransaction();
            ft.Replace(Resource.Layout.MainLayout, detail);

            //
            ft.AddToBackStack(null);
            ft.Commit();

我完全失败了,对不起我的英语太糟糕了!

我希望您了解我的问题,在viewPager中有3个片段,在app启动时加载第二个片段。单击列表项加载详细信息片段...

如果有人有任何想法?

感谢您的时间和所有您的知识分享它真的很好

1 个答案:

答案 0 :(得分:0)

问题是您的替换事务,您正在尝试替换不在当前布局中的ID。

您正在尝试替换Resource.Layout.MainLayout。替换事务需要视图层次结构中当前视图的ID。

编辑:

目前尚不清楚如何开始展示ViewPager。让我们假设它自己在片段中膨胀。反过来,片段显示在Resource.Id.content中,这是您用来显示片段的占位符。

Resource.Id.content位于Activity中的布局中,您可以使用ViewPager设置片段。它们的布局可能就像:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:local="http://schemas.android.com/apk/res-auto"
    android:id="@+id/main_frame"
    android:fitsSystemWindows="true"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <FrameLayout
        android:id="@+id/content"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</android.support.design.widget.CoordinatorLayout>

FrameLayout是您在进行交易时有效替换的内容。您要替换的内容必须是布局的一部分。您不能只是说要替换整个布局,因为它不是可见ID。