問題タブ [onmeasure]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
1266 参照

android - OnMeasure のオーバーライド

次のxmlでカスタムビューを作成しました

それらの複数の複製を、Linearlayout を使用して ScrollView に挿入したいと考えています。

画面サイズが異なるため、onmeasure オーバーライドを使用してそれに応じてスケーリングする必要があることを理解しています。

上記のコードを使用すると、常に wSpec = 0 および hSpec = 382 が得られます。

CustomView を挿入したい LinearLayout のサイズを取得するにはどうすればよいですか?

ありがとう

0 投票する
3 に答える
6833 参照

android - カスタム ビューで onMeasure() が 2 回呼び出されるのはなぜですか?

以下は私のカスタムのコードですView

XML レイアウト:

私のコードCustomView.java

テスト アクティビティのコード:

logcat 出力:

StackOverflow を検索しましたが、誰も明確な答えを出していません。誰かが私を助けることができますか?

0 投票する
1 に答える
166 参照

android - onMeasure サイクルを中断してエラーを表示する (Android)

ビューのメソッドをオーバーライドしてカスタム動作を提供しました。カスタム呼び出し中にエラーが発生した場合は再帰を中止し、エラーを示す別のアクティビティを優先してそのアクティビティのレンダリングをすぐに停止getView(int, View, ViewGroup)できるようにしたいと考えています。 .measure() -> onMeasure() -> measureChildStuff() -> child.measure()getView()

残念ながら、Android は、Activity を変更する私の Intent を聞く前に、測定のスタックを終了することを主張しているようです。インテントを強制的にすぐに開始する方法はありますか? たとえば、オーバーライドすることで何かを達成できますContext.startActivity()か?

0 投票する
1 に答える
1760 参照

android - Android - カスタム ビューの幅と高さが 0 です

垂直 LinearLayout 内に 2 つの TextViews を持つカスタム ビューを作成しようとしていますが、それがどのように機能するかについて完全に混乱しています。

onDraw メソッドが呼び出されていないため、現在何も表示されていません。これは、私のビュー (LinearLayout?) の幅と高さが両方とも 0 であることが原因だと思います。

onMeasure を上書きする必要があると思いますが、setMeasuredDimension(100,100) を試した後、これはまだ機能していません。

ビュー内でxmlを膨張させ、その中で2つのTextViewを使用しようとしています。

説明も素晴らしいので、これがどのように機能するかを理解できることを願っています.

ありがとう

size_button.xml

SizeButton.java

ProductFragment.java - ボタンがフラグメントに追加される場所

0 投票する
0 に答える
2022 参照

android - カスタム ビュー ラップ コンテンツ オーバーライド OnMeasure

ビットマップが描画されるカスタム ビューを作成しました。問題は、設定したレイアウトの幅/高さに関係なく、カスタム ビューが画面全体を占めることです。

私はフォーラムを調べていて、onmeasure メソッドのオーバーライドについて読みましたが、私にとってはゼロを返すため、幅と高さがゼロに設定されています。

これが私がこれまでに行ったことです:

編集

完全な XML:

カスタムビューを設定した私のフラグメントでは、次のとおりです。

次に、カスタム ビュー クラスで onMeasure を次のように呼び出します。

wrapHeight と wrapWidth はゼロとして返されます。誰かアドバイスをいただけますか?カスタムビューなどは初めてなので、掘り下げていただければ幸いです;)

****編集**** これはスライダーであることを追加する必要があるため、カスタムビューでは onscroll メソッドを使用しています...それによって状況が変わる可能性があると思います。ビューがスクロールされるフレーム画像があるので、ビューの高さをフレームの高さの 2 倍に設定する必要があると思いますか??

誰でも助けることができますか?

レイアウト構造

レイアウト構造

0 投票する
3 に答える
2425 参照

java - onMeasure メソッドを呼び出すにはどうすればよいですか? - アンドロイド

1 つのビューで 1 つのアクティビティがあります。このビューの目的は、正方形のグリッドを表示することです。正方形の辺は、画面の幅を水平に存在する正方形の数で割った値に等しくなります。

カスタムの高さでビューを作成するのにすでに苦労していましたが、これを行いました:

問題は、デバッグすると、squareSide 変数の値が 0 になることです。おそらく onMeasure() が createGuideLines() の後に呼び出されていると思いました。以前に電話した場合、問題は解決しますか? onMeasure() メソッドを呼び出すメソッド requestLayout() があることをドキュメントで読みましたが、それを実装する方法についての手がかりがありません。

御時間ありがとうございます。

0 投票する
0 に答える
6140 参照

android - レイアウトの幅と高さを変更するときに onMeasure を呼び出す方法

こんにちは私はキャンバスの描画に取り組んでいます。そのために、カスタム ビューActivity(extends ) を使用しています。このビューは、キャンバスをスクロールするために mainactivity(extends ) にView追加され、カスタム ビューの幅と高さは 700*3000 になり、実行時にカスタム ビューの幅と高さが増加しました。ScrollViewActivity

onMeasure()幅と高さを変更するときにどのように呼び出すことができますか。

これonMeasure()は、カスタム ビューが呼び出されたときに呼び出されます。ただし、実行時には、呼び出されない限りonResume()呼び出されません。

の呼び出しには、 inonMeasure()を使用しています。measure(width,heigt);onTouch()

onMeasure()しかし、それは呼び出されません。実行時に呼び出すことは可能ですか。では、どのように?誰でも私に解決策を教えてください。

0 投票する
1 に答える
5887 参照

android - onMeasure は 1,500 回以上呼び出されます

最近、アプリの重大なパフォーマンスの問題に気付きました。私は基本的に次のレイアウトを持っています... ここに画像の説明を入力

説明
要するに、ページとしてViewPager3 を保持する a がありRelativeLayoutます。各ページ内には多数の がありTextViewます。最近、オートコンプリート用の簡単な SQL クエリを実行するためにEditTextを入力すると、多くの遅延が発生することに気付きました。TextWatcher私の HTC One M8 は、テキストを入力するときに途切れたり遅れたりしますが、約 7 ミリ秒しかかからないクエリを測定したので、遅いのはクエリではないことがわかります。

メソッド プロファイリング、Systrace、および昔ながらのLogデバッグを使用した結果、文字を入力するたびに、EditText1,700 の呼び出しが A、B、および C内のonMeasureで行われていることがわかりました。累積すると、全体で約 15 個の独立した しかありません。ページ。通常は1 回か 2 回ではなく、それぞれが何百回も呼び出されていることに気付きました。TextViewRelativeLayoutTextViewonMeasure

質問 ページ B に を入力すると、ページ A と C の他の も「再測定」される
理由がわかりません。さらに重要なことに、なぜが頻繁に呼び出されるのかについて洞察を持っている人はいますか? そして、への呼び出しの数を大幅に減らす解決策を知っている人はいますか?EditTextTextViewonMeasureonMeasure

詳細
これは役立つかもしれません:onMeasure呼び出しRelativeLayoutの伝播onMeasureViewPager.