0

我正在开发家谱应用程序。现在,树视图可以很大,我允许用户左右导航(例如,如果您有 7 个兄弟姐妹)。但是当我打开树视图时,它总是从左角开始,您可以向右滚动以查看更多内容。我希望树视图始终在布局中间打开。

这是代码:

    <?xml version="1.0" encoding="UTF-8"?>
    <HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/HorizontalScrollView01"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/light_green" >

    <LinearLayout
        android:id="@+id/Top_Level_View_Family_Tree"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:orientation="vertical"  >

        <TextView
            android:id="@+id/TextView_view_family_members_title"
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight="3"
            android:text="Family Tree"
            android:gravity="center_horizontal"
            android:textSize="@dimen/font_large" />

        <LinearLayout
            android:id="@+id/Family_Tree_parentLL"
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight="4"
            android:gravity="center_horizontal"
            android:orientation="horizontal"  >
        </LinearLayout>

        <LinearLayout
            android:id="@+id/Family_Tree_yourLL"
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight="4"
            android:gravity="center_horizontal"
            android:orientation="horizontal" >
        </LinearLayout>
        <LinearLayout
            android:id="@+id/Family_Tree_siblingLL"
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight="4"
            android:gravity="center_horizontal"
            android:orientation="horizontal" >
        </LinearLayout>

        <LinearLayout
            android:id="@+id/Family_Tree_childLL"
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight="4"
            android:gravity="center_horizontal"
            android:orientation="horizontal" >
        </LinearLayout>
    </LinearLayout>

</HorizontalScrollView>

这是应用程序:http:
//img838.imageshack.us/img838/310/appa.png

伟大的帮助: Android 计算水平滚动视图中的滚动位置

4

1 回答 1

0

您必须将其放置在代码中,不能在 XML 中进行。使用 的scrollTo方法HorizontalScrollView来完成此操作。您必须根据顶级 LinearLayout 的宽度计算需要滚动到自己的位置。

类似于以下内容:

HorizontalScrollView hView = findViewById( R.id.HorizontalScrollView01 );
LinearLayout lin = findViewById( R.id.Top_Level_View_Family_Tree );

int width = lin.getWidth();
hView.scrollTo( width / 2, 0 );

现在,您将需要编辑该scrollTo部分,因为我确定它不是滚动到的正确位置,它可能滚动到视图左侧的某个位置,而我所做的假设它去了中央。你必须玩弄计算才能让它做你想做的事。

于 2012-11-29T18:19:29.993 回答