ScrollView从tabbar开始,但需要从布局顶部滚动

时间:2015-02-24 05:55:14

标签: android layout scrollview android-tabhost

我的布局中有滚动条的问题。 我的布局包含一个包含两个布局的滚动条。第一个布局具有静态高度。第二个结帐包含tabgroup的 tabHost 。第二个布局还包含Expandable Gridview。

问题是,当我加载布局时,它会直接显示Tabbar并隐藏第一个布局。我们可以滚动但最初我需要显示顶部布局而不是tabHost 。任何人都可以帮助我解决这个问题吗?

提前致谢...

我已经从xml文件中添加了我的代码段。

<ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@+id/header"
    android:fillViewport="true" >

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <RelativeLayout
            android:id="@+id/relay1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:focusable="true" >

            <include
                android:id="@+id/cover"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                layout="@layout/coverphoto" />

            <ImageView
                android:id="@+id/ximg_logo"
                android:layout_width="70dip"
                android:layout_height="70dip"
                android:layout_below="@+id/cover"
                android:layout_marginLeft="16dip"
                android:layout_marginTop="-42dip" />

            <TextView
                android:id="@+id/xtxt_name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignBottom="@+id/ximg_logo"
                android:layout_marginLeft="5dip"
                android:layout_toRightOf="@+id/ximg_logo"
                android:ellipsize="end"
                android:ems="5"
                android:singleLine="true"
                android:textColor="@color/sixty_black"
                android:textSize="20sp" >

                <requestFocus />
            </TextView>

            <Button
                android:id="@+id/xbtn_follow"
                style="@style/follow_button_normal"
                android:layout_width="95dip"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_below="@+id/cover"
                android:layout_marginRight="7dip"
                android:background="@drawable/buttons_shape_fill_orange"
                android:text="@string/str_follow" />

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignBottom="@+id/cover"
                android:layout_alignParentRight="true"
                android:layout_alignParentTop="true"
                android:background="@color/fifty_black"
                android:orientation="vertical"
                android:paddingLeft="3dip"
                android:paddingRight="3dip"
                android:weightSum="3" >

                <RelativeLayout
                    android:id="@+id/xlay_following"
                    android:layout_width="match_parent"
                    android:layout_height="0dip"
                    android:layout_alignParentTop="true"
                    android:layout_marginTop="10dip"
                    android:layout_weight="1"
                    android:onClick="following" >

                    <TextView
                        android:id="@+id/xtxt_imfollowing"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentTop="true"
                        android:layout_centerHorizontal="true"
                        android:textColor="@color/white"
                        android:textSize="18sp" />

                    <TextView
                        android:id="@+id/xtxt_imfollowing_text"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_below="@+id/xtxt_imfollowing"
                        android:layout_centerHorizontal="true"
                        android:padding="5dip"
                        android:text="@string/str_im_following"
                        android:textColor="@color/white"
                        android:textSize="14sp" />
                </RelativeLayout>

                <RelativeLayout
                    android:id="@+id/xlay_follower"
                    android:layout_width="match_parent"
                    android:layout_height="0dip"
                    android:layout_weight="1"
                    android:onClick="follower" >

                    <TextView
                        android:id="@+id/xtxt_myfollower"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerHorizontal="true"
                        android:layout_marginTop="10dip"
                        android:textColor="@color/white"
                        android:textSize="18sp" />

                    <TextView
                        android:id="@+id/xtxt_myfollowers_text"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_below="@+id/xtxt_myfollower"
                        android:layout_centerHorizontal="true"
                        android:padding="5dip"
                        android:text="@string/str_myfollowers"
                        android:textColor="@color/white"
                        android:textSize="14sp" />
                </RelativeLayout>

                <RelativeLayout
                    android:id="@+id/xlay_interests"
                    android:layout_width="match_parent"
                    android:layout_height="0dip"
                    android:layout_alignParentBottom="true"
                    android:layout_below="@+id/xlay_follower"
                    android:layout_centerHorizontal="true"
                    android:layout_weight="1" >

                    <TextView
                        android:id="@+id/xtxt_interests"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerHorizontal="true"
                        android:layout_marginTop="10dip"
                        android:textColor="@color/white"
                        android:textSize="18sp" />

                    <TextView
                        android:id="@+id/xtxt_interests_text"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_below="@+id/xtxt_interests"
                        android:layout_centerHorizontal="true"
                        android:paddingBottom="5dip"
                        android:text="@string/str_interest"
                        android:textColor="@color/white"
                        android:textSize="14sp" />
                </RelativeLayout>
            </LinearLayout>

            <RelativeLayout
                android:id="@+id/xrl_msg"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_alignParentTop="true"
                android:background="@color/fifty_black"
                android:padding="10dip" >

                <ImageView
                    android:id="@+id/ximg_message"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:layout_alignParentTop="true"
                    android:src="@drawable/ic_msg" />
            </RelativeLayout>
        </RelativeLayout>

        <RelativeLayout
            android:id="@+id/relay2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/relay1"
            android:layout_marginTop="10dip" >

            <TabHost
                android:id="@android:id/tabhost"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" >

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:orientation="vertical" >

                    <TabWidget
                        android:id="@android:id/tabs"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="20dip" >
                    </TabWidget>

                    <View
                        android:layout_width="match_parent"
                        android:layout_height="1dip"
                        android:background="@color/orange" />

                    <FrameLayout
                        android:id="@android:id/tabcontent"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent" >

                        <LinearLayout
                            android:id="@+id/tab1"
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:orientation="vertical" >
                        </LinearLayout>

                        <LinearLayout
                            android:id="@+id/tab2"
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:orientation="vertical" >
                        </LinearLayout>

                        <LinearLayout
                            android:id="@+id/tab3"
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:orientation="vertical" >
                        </LinearLayout>
                    </FrameLayout>
                </LinearLayout>
            </TabHost>
        </RelativeLayout>
    </RelativeLayout>
</ScrollView>

3 个答案:

答案 0 :(得分:0)

当然,RelativeLayout rl1与rl2重叠。它们在layout_width上都是match_parent。您需要使用android:layout_alignParentTopandroid:layout_alignParentLeft="true"将两个布局与左/右或上/下对齐。 但是你不能将它用于RelativeLayout。它用于RelativeLayout或LinearLayout中的UI元素。

由于您没有使用标签元素或任何UI发布完整的布局文件,因此我无法为您提供任何xml示例。

答案 1 :(得分:0)

我有一个类似的问题,一种适用于我的布局的方法是更改​​高度和可见性,如下所示(使用布局架构作为一个很好的例子):

<RelativeLayout
    android:id="@+id/relay1"
    android:layout_width="match_parent"
    android:focusable="true"

    android:layout_height="0dp"
    android:visibility="gone"
    >

请注意 android:layout_height 可见性。当然,我知道你并不希望你的第一个布局永远隐藏起来。但这是一个想法,你可以用你的第二个布局relay2做同样的事情。

这是一个动态隐藏/显示布局的示例代码。对象relayLayout是你的relay1视图。

if "hide the layout" {
  relayLayout.setVisibility(LinearLayout.GONE);
}
else {
  relayLayout.setVisibility(LinearLayout.VISIBLE);
}

注意setVisibility和有效常量。

现在,示例代码设置视图的高度。这可能是您需要的唯一代码,实际上可能更好。

ViewGroup.LayoutParams layoutParams = relayLayout.getLayoutParams();
layoutParams.height = 0;
relayLayout.setLayoutParams(layoutParams);

主要注意ViewGroup.LayoutParamsheight属性。在此代码中,布局将被隐藏,第二个布局应该升到顶部。

答案 2 :(得分:0)

另一个解决方案,可能是最好的解决方案是谷歌显示/隐藏2种不同布局的答案。在您的布局文件中,我看到了两种截然不同的布局设计,因此这适用于您的情况。 一个说明这一点的网页是Building a Dynamic UI with Fragments。 这是一个很好的阅读。

这是一个示例代码,让这个想法有效:

// Create new fragment and transaction
Fragment newFragment = new ExampleFragment();
FragmentTransaction transaction = getFragmentManager().beginTransaction();

// Replace whatever is in the fragment_container view with this fragment,
// and add the transaction to the back stack
transaction.replace(R.id.fragment_container, newFragment);
transaction.addToBackStack(null);

// Commit the transaction
transaction.commit();

示例代码来自Fragments

此代码和布局设计的一个优点是,您的2个布局至少分为2个文件,并强制分离以备将来的代码更改。 玩得开心:-) Tommy Kwee。