gpt4 book ai didi

android - 以编程方式更改android布局

转载 作者:搜寻专家 更新时间:2023-11-01 09:16:17 25 4
gpt4 key购买 nike

我使用这样的布局 main.xml 启动我的应用程序:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:id="@+id/relative" xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<ImageButton android:id="@+id/applogo" ... android:src="@drawable/app_logo"/>
<TabHost android:id="@android:id/tabhost" ... android:layout_below="@+id/applogo">
<LinearLayout ...>
<TabWidget.../>
<FrameLayout android:id="@android:id/tabcontent"...>
</FrameLayout>
</LinearLayout>
</TabHost>
</RelativeLayout>

并且用户在设置菜单中可以选择另一个布局,更小的(tiny.xml),其布局是这样的:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:id="@+id/relative" xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<TabHost android:id="@android:id/tabhost" ...>
<LinearLayout ...>
<TabWidget.../>
<FrameLayout android:id="@android:id/tabcontent"...>
</FrameLayout>
</LinearLayout>
</TabHost>
</RelativeLayout>

mainActivity 扩展了 TabActivity 并在 onCreate 方法中:

...

if (isTiny())
setContentView(R.layout.tiny);
else
setContentView(R.layout.main);
mTabHost = getTabHost();

TabSpec newsTab = mTabHost.newTabSpec(NewsActivity.static_getTabActivityTag());
newsIntent = new Intent(this, NewsActivity.class);
newsTab.setContent(newsIntent);
TextView textView = new TextView(this);

textView.setText(getResources().getString(NewsActivity.static_getIndicatorStringID());
textView.setTextSize(size);
textView.setTextColor(color);
textView.setBackgroundDrawable(background);
tab.setIndicator(textView);
mTabHost.addTab(newsTab);

想法是在 mainActivity#onRestart 中编写一些代码,这样如果用户通过设置面板更改了布局,就会为他加载新布局。如何实现?我尝试使用 setContentView 但它只是崩溃 并再次为选项卡创建 View 但它不起作用, View 是空白的。

更新:添加了如何在 Activity 中创建选项卡。

更新 setContentView 可以多次执行。我的问题与 Intent 中的 Activity 有关。

最佳答案

您可以随时调用 setContentView,不必在 onCreate 中。我会使用 SharedPreferences 来存储用户想要的内容 View 。希望这会有所帮助。

关于android - 以编程方式更改android布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4451641/

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