我正在开发Family Tree应用程序。现在,树视图可能很大,我允许用户左右导航(例如,如果你有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 calculate scrollTo position in HorizontalScrollView
答案 0 :(得分:0)
你必须将它放在代码中,不能用XML来实现。使用HorizontalScrollView
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 );
方法完成此操作。你必须根据顶层LinearLayout的宽度计算你需要滚动到自己的位置。
如下所示:
scrollTo
现在,您需要编辑{{1}}部分,因为我确定它不是滚动到的正确位置,它可能会滚动到视图左侧的位置,以及我确实假设它去了中心。你必须要进行计算才能使它达到你想要的效果。