gpt4 book ai didi

android - TabHost UI 布局问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:08:52 26 4
gpt4 key购买 nike

我想做的是创建这样的布局:

       +--------+ 
Search |EditText| [Button]
+--------+

+---------+
|Tab 1 |---------+
| |Tab 2 |
|---------+---------+-----------------+
| ListView Item 1 |
| ListView Item 2 |
| ListView Item 3 |
| ListView Item 4 |
| ListView Item 5 |
| ListView Item 6 |
| ListView Item 7 |
| ListView Item 8 |
| ListView Item 9 |
| ListView Item 10 |
+-------------------------------------+

这是一个显示“搜索”的 TextView、一个 EditText 和一个按钮。

然后在它下面是选项卡 - 选项卡 1 有一个 ListView,选项卡 2 有一些其他的东西。我可以获得一个简单的 TabHost 设置,其中两个选项卡工作正常,但无法正确布置上面的内容。

问题是它安装和运行良好 - 只是布局错误。我已经尝试过加权 View 等等,但我无法按照上面的 ASCII 图定位。

我会在 Eclipse 设计器中创建 UI 并从中检查 XML,除非设计器不使用 TabHost。而 DroidDraw 似乎并不知道 TabHost。

这是 XML:

<?xml version="1.0" encoding="utf-8"?>

<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/TabHost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">

<LinearLayout
android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:padding="5dp">

<TextView android:id="@+id/SearchTextView"
android:text="Search"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="10">
</TextView>

<EditText
android:text="@+id/SearchEditText"
android:id="@+id/SearchEditText"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:singleLine="true"
android:layout_weight="10">
</EditText>

<TabWidget android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="10"/>

<FrameLayout android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="70">

<LinearLayout android:id="@+id/Tab1ListLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
</LinearLayout>

<Button android:id="@+id/tab2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="Tab 2 button"/>

</FrameLayout>
</LinearLayout>
</TabHost>

...这是 Activity :

    public class tabtest extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

TabHost tabs = (TabHost)findViewById(R.id.TabHost);
tabs.setup();
TabHost.TabSpec spec = tabs.newTabSpec("tag1");
spec.setContent(R.id.Tab1ListLayout);
spec.setIndicator("Tab 1");
tabs.addTab(spec);
spec=tabs.newTabSpec("tag2");
spec.setContent(R.id.tab2);
spec.setIndicator("Tab 2");
tabs.addTab(spec);

EditText et = (EditText)findViewById(R.id.SearchEditText);
et.setText("Some text.");

}

最佳答案

看来您需要复习基础知识,例如 "layout resources""declaring layout" .

参见 layout tricks对于“权重”线性布局技巧。可能的解决方案:

<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent">
<LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent">
<LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal">
<TextView android:id="@+id/SearchTextView"
android:text="Search"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</TextView>

<EditText
android:text="@+id/SearchEditText"
android:id="@+id/SearchEditText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true">
</EditText>

</LinearLayout>

<TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="wrap_content" />

<FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="0dip" android:layout_weight="1"/>
<LinearLayout android:id="@+id/Tab1ListLayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</LinearLayout>

<Button android:id="@+id/tab2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tab 2 button"/>
</LinearLayout>
</TabHost>

关于android - TabHost UI 布局问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3031740/

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