2011-10-03 10 views
0

実際の問題が解決されるので、これは主に哲学に関する質問です。 SDKはGalleryクラスを提供します。このギャラリーは私が必要とするものの90%で、2つのものが欠けているだけです。 1つは、次のアイテムへの定期的な前進を引き起こす追加のRunnableを実装したい、2つはアイテム間のスクロールをアニメーション化するために必要なものです。「ウィジェット」ウィジェットをサブクラス化して「ティッカー」の振る舞いを作成する

自動定期的な前進が容易でした。しかし、アイテム間のscollアニメーションを実装する際に重大な問題に遭遇しました。これで、setSelectionをオーバーライドして、onFlingへのラッパーになることを解決しました。

私の背景は主にこの時点ではPythonなので、この実装はちょっと気になります。私は、親の幅に基づいて速度を計算してから、onFling(null、null、my_calculated_velocity、0)を呼び出しています。これは私にとって本当に間違っていると感じています。何らかの理由でGoogleが速度変化からの距離を計算するとどうなりますか?ギャラリーのサブクラスからアクセス可能であるの

なし MoveNextメソッド scrollToChild mFlingRunnable.startUsingDistance:

今私はギャラリーのソースに目を通すない、と私は私に、より良いトンを感じる方法のトンを参照してください。 Pythonではプライベートの概念はないので、Javaで何かをサブクラス化すると、1つの動作をオーバーライドするために2/3のペーストをコピーする必要があります。

Javaの穀物に逆らってやり方を試みるのは間違っているのですが、私がアンドロイドプロジェクトに取り組んで座るたびに不満を感じることがあります私が必要としていることを行う方法は、公開されているか保護されているのではなく、プライベートであるかデフォルトであるべきか?

+1

私はあなたがしたいことのために 'ギャラリー'を使うことに不幸に思っています。私は最近、 'Gallery'を使って' TextView'ウィジェットの水平メニューを実装するようになりました。本当に特に柔軟ではないことを実感しました。本当に動作するPITAです。一般に、簡単に拡張されることが意図されているほとんどのAndroidクラスは、十分な機能以上のものを許しています - 'ギャラリー'はちょうどIMOの悪いものになります。また、価値があるとは思わない様々な人々を使用して。私は現在、 'ギャラリー'は実際にそれをカットしないので、物事を再考しています。 – Squonk

+0

「Gallery」はひどく設計されたクラスであるかもしれません。私は正しい方法が何であるかと思います。私が記述した基本的な振る舞いを持つ 'TextViews'の水平リストを扱うのに、箱の外にあるウィジェットが適していますか?おそらく、拡張機能のほうが柔軟性があったとしても、今後は「ギャラリー」を完全に避けることができますか? – John

+0

「プライベート」は、「この機能では困惑しない」というデザイナーの方法です。 – richardwiden

答えて

0

ギャラリーは先に述べたとおりですが、拡張するのにはとても良いクラスではありません。ここでのよりよい方法は、実際にソースを入手して使用することです。

FYIは何らかの理由でデバイスが一時的にロックアップした場合、速度DOを変更します。

あなたは何か間違っているわけではありません。間違って設計されたクラスです。

関連する問題