我正在开发一个Android应用程序,它有一个带有两个按钮的片段," News"或"社交"。它会被新闻初始化,然后如果" Social"在运行时单击按钮,它应该使用社交的相关内容刷新片段。有没有办法做到这一点?
答案 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)
就个人而言,我会:
制作一个容器Fragment
(只是您的两个按钮),其中包含FrameLayout
。
制作BaseNewsFragment
的基本抽象类,它将成为您NewsFragment
和SocialFragment
的父级。
依赖于单击了哪个按钮,我会调用一个方法来用{x>一个特定片段的参数替换FrameLayout
的内容