/ /どのようにアンドロイドで双方向スクロール可能なビューを作成するには? - アンドロイド、エクセル

どのようにアンドロイドで双方向スクロール可能なビューを作成するには? - アンドロイド、エクセル

Excelのシートのような2次元スクロールの大きなテーブルを表示する必要があります.1000行(〜10列)まで非常に大きくなります。

ですから、私がListView-into-Horizo​​ntalScrollViewアイデアに基づいて見つけたすべてのソリューション。使用するには遅すぎます。

私はWebViewを使用しようとしましたが、スクロール可能なスクロール可能なスローです。

たぶん、私は私のlistLayoutのビットマップを取得し、すべての更新でHorizo​​ntalScrollableに入れることができますか?他の種類の魔法の魔法を使う?あるいは、私はいくつかのlibを使うことができますか?

回答:

回答№1は0

ここには考えがあります:

  • 行のListView
  • 各行は別々の水平LinearLayoutであり、各子ビューはセルです
  • LinearLayoutはHorizo​​ntalScrollViewにラップされているので、ListViewの各アイテムはHorizo​​ntalScrollViewです。
  • 水平方向にスクロールするときは、すべてのHorizo​​ntalScrollViewsを同時にスクロールして、すべてが垂直に並んでいるようにします。

これらのHorizo​​ntalScrollViewsをすべて効率的にするようなことはありませんが、Horizo​​ntalScrollViewが埋め込みListViewをレンダリングできるものよりもはるかに高速に単一の行をレンダリングできます。

今、どのように水平スクロールを行うには?あなたには2つの選択肢があります:

  1. 単一のHorizo​​ntalScrollViewでスワイプイベントを他のすべてのイベントに伝播します。プロ:コード作成が簡単です。欠点:スレッドの遅延のため、スワイプされたHSVは他のHSVと正確に同期していないことがあります。

  2. スワイプイベントを中央の場所からListViewをオーバーライドし、それらをHSVに伝播します。プロ:よりきれいなディスプレイ。 Con:スワイプをキャプチャするために必要なすべてのonInterceptTouchEventとonTouchEventブードゥーをコーディングするのは難しい。

このアプローチのもう一つの欠点は、水平LinearLayoutのセルのビューに明示的な幅が設定されている必要があります。それ以外の場合、列は「tラインアップ」になります。

私はそれを試していない限り、良い良心の中でこれをお勧めできませんでしたので、いくつかのコードを一緒にハックしました。 Githubのアンドロイドテーブルテストプロジェクト

私は、18列と36キロ行のデータソースを持っていて、それはうまくスクロールしているようです(双方向)。