Android - 片段有两个按钮

时间:2017-07-27 11:21:25

标签: android android-fragments

我正在开发一个Android应用程序,它有一个带有两个按钮的片段," News"或"社交"。它会被新闻初始化,然后如果" Social"在运行时单击按钮,它应该使用社交的相关内容刷新片段。有没有办法做到这一点?

Print screen showing what i want to achieve

5 个答案:

答案 0 :(得分:0)

一种方法是在片段上放置两个视图并正确显示/隐藏:

<!-- News -->
<FrameLayout
    android:id="@+id/news_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <!-- News content -->

    </FrameLayout>

<!-- Social -->
<FrameLayout
    android:id="@+id/social_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <!-- Social content -->

</FrameLayout>

然后,在Java上,您使用这些容器:

// show news and hide social example
socialContainer.setVisibility(View.GONE)
newsContainer.setVisibility(View.VISIBLE)

答案 1 :(得分:0)

是的,您可以通过在按钮的单击侦听器中设置ui元素的值来设置,并传递单击按钮的相应内容。但是如果您想要以不同方式表示信息,则需要根据单击的按钮制作容器布局并设置可见性。

答案 2 :(得分:0)

在您的新闻标签中,您可以通过以下代码实现相同的目标

newsBtn.setOncliclListener(this);
socialBtn.setOncliclListener(this);

并在您的onclick方法中根据btn click

记下更新视图的代码
  @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.newsbtn:
             socailview.setVisibility(View.GONE);
             newsview.setVisibilty(View.VISIBLE);
             loadYourNewsViewData();
              break;
            case R.id.socialbtn:
            newsview.setVisibilty(View.GONE);
            socailview.setVisibility(View.VISIBLE);

             loadYourSocialViewData();
            break;
       }
}

答案 3 :(得分:0)

您可以在主要活动中使用此代码将新闻片段加载为第一个片段

<fragment
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:name="name of your news fragment class"
            android:id="@+id/newsFragment"/>

答案 4 :(得分:0)

就个人而言,我会:

  1. 制作一个容器Fragment(只是您的两个按钮),其中包含FrameLayout

  2. 制作BaseNewsFragment的基本抽象类,它将成为您NewsFragmentSocialFragment的父级。

  3. 依赖于单击了哪个按钮,我会调用一个方法来用{x>一个特定片段的参数替换FrameLayout的内容