2

私はAndroid開発(さらに言えばJava)を学び始めたばかりで、SlidingDrawerウィジェットを変更しようとしていました。次のような行を見つけたコードを調べていることに気づきました。

final int childHeight = mHandleHeight;
int height = mBottom - mTop - childHeight - mTopOffset;

getHeight()の代わりに「mBottom--mTop」が使用されるのはなぜですか?また、mHandleHeightがすでに存在するのに、なぜchildHeight専用に変数が作成されるのですか?

コード: http: //grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.0.3_r1/android/widget/SlidingDrawer.java?av = f line 637

編集:参照コードの2行目を変更。これらの変数(mBottom、mTop)は、独自のビューを作成するときに使用できないため、代わりにメソッド'getTop()'および'getBottom()'を使用する必要があります。

4

1 に答える 1

1

ええと、なぜ私が最初にViewGroupのコードを見なかったのかわかりません、私は自分のSDKがそれほどオープンですぐに利用できることに慣れていません:) http://grepcode.com/file/repository .grepcode.com / java / ext / com.google.android / android / 4.0.3_r1 / android / view / View.java#View.getHeight%28%29は、関数の定義を示しています。これは単純です。

6956     public final int getHeight() {
6957         return mBottom - mTop;
6958     }

これが質問の主要なポイントだったので、私はできる限り回答済みとしてマークし、誰かがこれから恩恵を受けることを願っています。なぜ余分な変数があるのか​​まだわかりません。マルチスレッド環境では、mChildHeightが関数の途中で変更される可能性があるため、スナップショットが必要です。

于 2012-07-04T07:04:19.010 に答える