如何在TabLayout - Xamarin.Android中托管的同一片段中打开新活动

时间:2016-10-07 00:05:31

标签: android android-fragments xamarin xamarin.android android-tablayout

我正在尝试开发一个包含3个选项卡的应用程序,其中一个选项卡具有listview。我可以处理listview项目的onclick事件。我需要知道的是如何在同一个标​​签中打开新的活动/片段(不会丢失标签栏)

1 个答案:

答案 0 :(得分:0)

您可以使用Android.Support.V4.App.FragmentSupportFragmentManager来实现此目的。首先由Nu​​get Support.V4包添加。在您的Activity布局中添加 RelativeLayout,此布局将保留您的片段。添加新片段并使用片段管理器进行更改。使用函数ChangeFragment(),您将只在RealitiveLayout中更改视图。请尝试按照此示例。

<强> main.axml

 <!-- The Main Content View -->
            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:id="@+id/SetFragment" />

<强> main_activity.cs

    protected void ChangeFragment(int pos)
    {

        Fragment fragment = null;
        switch (pos)
        {
            case 0:
               fragment = new NotificationFragment();
               break;

            case 1:
                fragment = new SampleFragment();
                break;
        }

            SupportFragmentManager.BeginTransaction()
                .Replace(Resource.Id.SetFragment, fragment, LoadFragment)
                .Commit();
      }

<强> sample_fragment.cs

public class SampleFragment : Fragment
{
    public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    {
        View = inflater.Inflate(Resource.Layout.sampleView, container, false);

        return View;
    }
}