2

我有这样的布局:

<TableRow
        android:id="@+id/TabHidden"
        android:layout_width="fill_parent"
        android:layout_height="45dp"
        android:background="@drawable/bg_detail_tab1"
        android:paddingLeft="5dip"
        android:paddingRight="5dip"
        android:paddingTop="10dip"
        android:visibility="gone"
    >
        ...
</TableRow>
<ScrollView
    android:id="@+id/ScrollViewGameDetail"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#ffffff"
    android:fillViewport="true" >
    <TableRow
        android:id="@+id/Tab"
        android:layout_width="fill_parent"
        android:layout_height="45dp"
        android:background="@drawable/bg_detail_tab1"
        android:paddingLeft="5dip"
        android:paddingRight="5dip"
        android:paddingTop="10dip"
    >
        ...
    </TableRow>
    ...
</ScrollView>

当我将 ScrollView 滚动到屏幕顶部时,我会将 TableRow 隐藏在 ScrollView 内,并通过调用将 TableRow 显示在外面

tabHidden.setVisibility(TableRow.VISIBLE);
tab.setVisibility(TableRow.GONE);

这将使 ScrollView 之外的 TableRow 始终位于屏幕顶部。它工作正常,除了当里面的 TableRow 被隐藏时,ScrollView 里面的所有内容都会被推高一点(等于 TableRow 的高度)。我不希望它像那样跳起来,因为滚动动作看起来不流畅。有没有办法阻止 ScrollView 内容自动填充这样的空白?

4

1 回答 1

2

当你使用setVisibility(View.GONE);它会被完全删除,你想要做的是留下空白空间,是使用setVisibility(View.INVISIBLE);

于 2012-07-09T07:46:37.580 回答