0

对于我正在开发的应用程序,我希望有 3 个选项卡,其中包含不同的元素。我尝试寻找一种方法来实现这一点,但我似乎无法找到我需要的示例。

基本上我想要这个:

选项卡 1,包含 4 个按钮和一个文本视图

选项卡 2,包含一个可滚动的图像视图

选项卡 3,包含一个 web 视图

我想在不使用活动的情况下解决这个问题,因为所有 3 个选项卡都需要访问相同的数据。

目前我使用这个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:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <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="fill_parent">
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:id="@+id/photoLayout">
            <Button
                android:text="@string/photoButton"
                android:layout_column="0"
                android:id="@+id/photoButton"
                android:textSize="10dp" />
            <Button
                android:text="@string/locateButton"
                android:layout_column="1"
                android:id="@+id/locateButton"
                android:textSize="10dp" />
            <Button
                android:text="@string/cropButton"
                android:layout_column="2"
                android:id="@+id/cropButton"
                android:textSize="10dp" />
            <Button
                android:text="reset"
                android:layout_column="3"
                android:id="@+id/resetButton"
                android:textSize="10dp" />
            <ScrollView
                android:minWidth="25px"
                android:minHeight="25px"
                android:layout_width="fill_parent"
                android:layout_height="370dp"
                android:id="@+id/scrollView1"
                android:fillViewport="true">
                <TextView
                    android:text="Text"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:id="@+id/textView1" />
            </ScrollView>
        </LinearLayout>
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:id="@+id/webviewLayout">
            <WebView
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:id="@+id/webView1" />
        </LinearLayout>
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:id="@+id/imageLayout">
            <ScrollView
                android:minWidth="25px"
                android:minHeight="25px"
                android:layout_width="fill_parent"
                android:layout_height="412dp"
                android:id="@+id/scrollView2"
                android:fillViewport="true">
                <ImageView
                    android:src="@android:drawable/ic_menu_gallery"
                    android:layout_column="0"
                    android:id="@+id/imageView1"
                    android:layout_height="411.6dp"
                    android:layout_width="316.7dp"
                    android:scaleType="centerInside" />
            </ScrollView>
        </LinearLayout>
    </FrameLayout>
</LinearLayout>

这个问题是我得到一个运行时异常说:

Java.Lang.RuntimeException: Binary XML file line #1: You must supply a layout_width attribute.

任何解决此问题的帮助将不胜感激!

4

1 回答 1

1

To answer the exception thrown, you need to specify layout_width and layout_height in every single elements you declared, which in your case, you did not specify any on those buttons.

But to express my curiosity, I believe you should anyhow make it in separate activities and separate layouts, "same data" can always be passed around using some extras I believe.

于 2013-05-02T08:43:08.700 回答