gpt4 book ai didi

android - 在 Activity 中创建选项卡并显示和隐藏布局

转载 作者:行者123 更新时间:2023-11-29 00:21:20 25 4
gpt4 key购买 nike

我正在 Android 中构建一个应用程序,您可以看到它的示例图片。在红色矩形中,我输入了一些图像按钮。当用户单击其中一个图像按钮时,其下方的控件应该发生变化。这就像我们在普通桌面应用程序中的选项卡一样。
但我不知道如何在 Android 中实现它以及我应该使用什么样的技术。我应该使用布局并隐藏一个并显示另一个吗?或者我应该使用布局的标签技术之类的东西吗?
我已经看到 Salesforce 已经在它的平板电脑应用程序中实现了这一点。所以它一定是可能的。但是我几乎到处都找遍了,四处询问,但还是找不到答案。
如果能提供任何类型的提示、代码示例或其他可以显示在 Xamarin.Android 中解决该问题的方法,我将不胜感激。 enter image description here

最佳答案

根据您在此处显示的布局,我假设这是使用 FrameLayout 然后使用 Fragments 来控制内容。

当用户按下按钮时,将使用事务重新填充框架布局。它看起来像这样:

布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/buttonOne"
android:text="One"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<Button
android:id="@+id/buttonTwo"
android:text="Two"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"/>
</LinearLayout>
<FrameLayout
android:id="@+id/frameContent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</LinearLayout>

Activity :

public class MainActivity : Activity
{
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);

SetContentView (Resource.Layout.Main);

var btnOne = this.FindViewById<Button> (Resource.Id.buttonOne);
btnOne.Click += (object sender, EventArgs e) => {
var fragment = new MyFragment(Resource.Layout.FrameLayoutOne);
FragmentManager
.BeginTransaction()
.Replace(Resource.Id.frameContent, fragment)
.Commit();
};

var btnTwo = this.FindViewById<Button> (Resource.Id.buttonTwo);
btnTwo.Click += (object sender, EventArgs e) => {
var fragment = new MyFragment(Resource.Layout.FrameLayoutTwo);
FragmentManager
.BeginTransaction()
.Replace(Resource.Id.frameContent, fragment)
.Commit();
};
}
}

fragment :

public class MyFragment : Fragment
{
int layoutId;
public MyFragment(int layoutId)
{
this.layoutId = layoutId;
}

public override void OnCreate (Bundle savedInstanceState)
{
base.OnCreate (savedInstanceState);
}

public override View OnCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
var view = inflater.Inflate (layoutId, container, false);
return view;
}
}

有关完整示例,请参阅我在我的 github 上托管的示例:

FragmentTransactionSample

关于android - 在 Activity 中创建选项卡并显示和隐藏布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22938695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com