Android 嵌套的 ScrollView 冻结窗格
Android Nested ScrollView Freeze Pane
当您可以冻结 sheet 的顶部窗格时,我正在尝试实现类似 Excel 的效果。我的 header.
在 HorizontalScrollView 中有一个 TableLayout
对于我的内容,它是 ScrollView 内的 HorizontalScrollView 内的 TableLayout。我快接近了,但无法弄清楚为什么 table body 在我的视野中途开始。
实际 header 和行以编程方式加载“”。如您所见,行从屏幕的中间位置开始,并且滚动超过实际行数。
我现在也遇到了水平滚动的问题,它在 100 次修订之前工作。
主要XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="390dp"
android:layout_height="match_parent"
android:background="@drawable/bordered_stuff"
android:orientation="vertical">
<HorizontalScrollView
android:id="@+id/window_guild_listtab_header_scroller_horizontal"
android:layout_width="811dp"
android:layout_height="wrap_content"
android:fillViewport="true"
android:layout_marginBottom="1dp"
android:scrollbars="none" >
<TableLayout
android:id="@+id/window_guild_listtab_table_header"
android:layout_width="811dp"
android:layout_height="wrap_content"
android:layout_marginLeft="2dp"
android:layout_marginTop="2dp"
android:layout_marginRight="2dp">
<!--Data loaded here programatically-->
</TableLayout>
</HorizontalScrollView>
<ScrollView
android:id="@+id/window_guild_listtab_table_scroller"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:layout_marginBottom="1dp"
android:fadeScrollbars="false"
android:scrollbarAlwaysDrawVerticalTrack="true"
android:scrollbarSize="3dp"
android:scrollbarStyle="outsideOverlay"
android:scrollbarThumbVertical="@color/THEME_LIGHT_TEXT">
<HorizontalScrollView
android:id="@+id/window_guild_listtab_table_scroller_horizontal"
android:layout_width="811dp"
android:layout_height="wrap_content"
android:fillViewport="true"
android:layout_marginBottom="1dp"
android:fadeScrollbars="false"
android:scrollbarAlwaysDrawHorizontalTrack="true"
android:scrollbarSize="3dp"
android:scrollbarStyle="outsideOverlay"
android:scrollbarThumbHorizontal="@color/THEME_LIGHT_TEXT">
<TableLayout
android:id="@+id/window_guild_listtab_table"
android:layout_width="811dp"
android:layout_height="wrap_content"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp">
<!--Data loaded here programatically-->
</TableLayout>
</HorizontalScrollView>
</ScrollView>
</LinearLayout>
下面是如何在不张贴代码墙的情况下扩充行:
<TableRow xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:background="@drawable/table_border"
android:divider="@color/THEME_LIGHT_TEXT"
android:showDividers="middle">
<ImageView
android:id="@+id/game_guild_list_row_flag_left_imageview"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="1dp"
android:layout_weight="0.121"
android:gravity="center"
android:background="@drawable/bordered_stuff" />
<com.kisnardonline.helpers.FontTextView
android:id="@+id/game_guild_list_row_tag_value"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="1dp"
android:layout_weight="0.055"
android:gravity="center"
android:text=""
android:textColor="@color/THEME_LIGHT_TEXT"
android:textSize="13sp" />
在第 3 天,他想通了...希望其他人觉得这有帮助。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="811dp"
android:layout_height="match_parent"
android:background="@drawable/bordered_stuff"
android:orientation="vertical">
<HorizontalScrollView
android:id="@+id/window_guild_listtab_header_scroller_horizontal"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginBottom="1dp"
android:fillViewport="true"
android:scrollbars="none">
<ScrollView
android:id="@+id/window_guild_listtab_header_fake_scroller"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fillViewport="true"
android:layout_marginBottom="1dp"
android:scrollbars="none">
<TableLayout
android:id="@+id/window_guild_listtab_table_header"
android:layout_width="811dp"
android:layout_height="wrap_content"
android:layout_marginLeft="2dp"
android:layout_marginTop="2dp"
android:layout_marginRight="2dp">
<!--Data loaded here programatically-->
</TableLayout>
</ScrollView>
</HorizontalScrollView>
<HorizontalScrollView
android:id="@+id/window_guild_listtab_table_scroller_horizontal"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:fillViewport="true"
android:layout_marginBottom="1dp"
android:fadeScrollbars="false"
android:scrollbarAlwaysDrawHorizontalTrack="true"
android:scrollbarSize="3dp"
android:scrollbarStyle="outsideOverlay"
android:scrollbarThumbHorizontal="@color/THEME_LIGHT_TEXT">
<ScrollView
android:id="@+id/window_guild_listtab_table_scroller"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fillViewport="true"
android:layout_marginBottom="1dp"
android:fadeScrollbars="false"
android:scrollbarAlwaysDrawVerticalTrack="true"
android:scrollbarSize="3dp"
android:scrollbarStyle="outsideOverlay"
android:scrollbarThumbVertical="@color/THEME_LIGHT_TEXT">
<TableLayout
android:id="@+id/window_guild_listtab_table"
android:layout_width="811dp"
android:layout_height="wrap_content"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp">
<!--Data loaded here programatically-->
</TableLayout>
</ScrollView>
</HorizontalScrollView>
</LinearLayout>
当您可以冻结 sheet 的顶部窗格时,我正在尝试实现类似 Excel 的效果。我的 header.
在 HorizontalScrollView 中有一个 TableLayout对于我的内容,它是 ScrollView 内的 HorizontalScrollView 内的 TableLayout。我快接近了,但无法弄清楚为什么 table body 在我的视野中途开始。
实际 header 和行以编程方式加载“”。如您所见,行从屏幕的中间位置开始,并且滚动超过实际行数。
我现在也遇到了水平滚动的问题,它在 100 次修订之前工作。
主要XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="390dp"
android:layout_height="match_parent"
android:background="@drawable/bordered_stuff"
android:orientation="vertical">
<HorizontalScrollView
android:id="@+id/window_guild_listtab_header_scroller_horizontal"
android:layout_width="811dp"
android:layout_height="wrap_content"
android:fillViewport="true"
android:layout_marginBottom="1dp"
android:scrollbars="none" >
<TableLayout
android:id="@+id/window_guild_listtab_table_header"
android:layout_width="811dp"
android:layout_height="wrap_content"
android:layout_marginLeft="2dp"
android:layout_marginTop="2dp"
android:layout_marginRight="2dp">
<!--Data loaded here programatically-->
</TableLayout>
</HorizontalScrollView>
<ScrollView
android:id="@+id/window_guild_listtab_table_scroller"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:layout_marginBottom="1dp"
android:fadeScrollbars="false"
android:scrollbarAlwaysDrawVerticalTrack="true"
android:scrollbarSize="3dp"
android:scrollbarStyle="outsideOverlay"
android:scrollbarThumbVertical="@color/THEME_LIGHT_TEXT">
<HorizontalScrollView
android:id="@+id/window_guild_listtab_table_scroller_horizontal"
android:layout_width="811dp"
android:layout_height="wrap_content"
android:fillViewport="true"
android:layout_marginBottom="1dp"
android:fadeScrollbars="false"
android:scrollbarAlwaysDrawHorizontalTrack="true"
android:scrollbarSize="3dp"
android:scrollbarStyle="outsideOverlay"
android:scrollbarThumbHorizontal="@color/THEME_LIGHT_TEXT">
<TableLayout
android:id="@+id/window_guild_listtab_table"
android:layout_width="811dp"
android:layout_height="wrap_content"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp">
<!--Data loaded here programatically-->
</TableLayout>
</HorizontalScrollView>
</ScrollView>
</LinearLayout>
下面是如何在不张贴代码墙的情况下扩充行:
<TableRow xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:background="@drawable/table_border"
android:divider="@color/THEME_LIGHT_TEXT"
android:showDividers="middle">
<ImageView
android:id="@+id/game_guild_list_row_flag_left_imageview"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="1dp"
android:layout_weight="0.121"
android:gravity="center"
android:background="@drawable/bordered_stuff" />
<com.kisnardonline.helpers.FontTextView
android:id="@+id/game_guild_list_row_tag_value"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="1dp"
android:layout_weight="0.055"
android:gravity="center"
android:text=""
android:textColor="@color/THEME_LIGHT_TEXT"
android:textSize="13sp" />
在第 3 天,他想通了...希望其他人觉得这有帮助。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="811dp"
android:layout_height="match_parent"
android:background="@drawable/bordered_stuff"
android:orientation="vertical">
<HorizontalScrollView
android:id="@+id/window_guild_listtab_header_scroller_horizontal"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginBottom="1dp"
android:fillViewport="true"
android:scrollbars="none">
<ScrollView
android:id="@+id/window_guild_listtab_header_fake_scroller"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fillViewport="true"
android:layout_marginBottom="1dp"
android:scrollbars="none">
<TableLayout
android:id="@+id/window_guild_listtab_table_header"
android:layout_width="811dp"
android:layout_height="wrap_content"
android:layout_marginLeft="2dp"
android:layout_marginTop="2dp"
android:layout_marginRight="2dp">
<!--Data loaded here programatically-->
</TableLayout>
</ScrollView>
</HorizontalScrollView>
<HorizontalScrollView
android:id="@+id/window_guild_listtab_table_scroller_horizontal"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:fillViewport="true"
android:layout_marginBottom="1dp"
android:fadeScrollbars="false"
android:scrollbarAlwaysDrawHorizontalTrack="true"
android:scrollbarSize="3dp"
android:scrollbarStyle="outsideOverlay"
android:scrollbarThumbHorizontal="@color/THEME_LIGHT_TEXT">
<ScrollView
android:id="@+id/window_guild_listtab_table_scroller"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fillViewport="true"
android:layout_marginBottom="1dp"
android:fadeScrollbars="false"
android:scrollbarAlwaysDrawVerticalTrack="true"
android:scrollbarSize="3dp"
android:scrollbarStyle="outsideOverlay"
android:scrollbarThumbVertical="@color/THEME_LIGHT_TEXT">
<TableLayout
android:id="@+id/window_guild_listtab_table"
android:layout_width="811dp"
android:layout_height="wrap_content"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp">
<!--Data loaded here programatically-->
</TableLayout>
</ScrollView>
</HorizontalScrollView>
</LinearLayout>