問題タブ [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.
android - OnMeasure のオーバーライド
次のxmlでカスタムビューを作成しました
それらの複数の複製を、Linearlayout を使用して ScrollView に挿入したいと考えています。
画面サイズが異なるため、onmeasure オーバーライドを使用してそれに応じてスケーリングする必要があることを理解しています。
上記のコードを使用すると、常に wSpec = 0 および hSpec = 382 が得られます。
CustomView を挿入したい LinearLayout のサイズを取得するにはどうすればよいですか?
ありがとう
android - カスタム ビューで onMeasure() が 2 回呼び出されるのはなぜですか?
以下は私のカスタムのコードですView
:
XML レイアウト:
私のコードCustomView.java
:
テスト アクティビティのコード:
logcat 出力:
StackOverflow を検索しましたが、誰も明確な答えを出していません。誰かが私を助けることができますか?
android - onMeasure サイクルを中断してエラーを表示する (Android)
ビューのメソッドをオーバーライドしてカスタム動作を提供しました。カスタム呼び出し中にエラーが発生した場合は再帰を中止し、エラーを示す別のアクティビティを優先してそのアクティビティのレンダリングをすぐに停止getView(int, View, ViewGroup)
できるようにしたいと考えています。 .measure() -> onMeasure() -> measureChildStuff() -> child.measure()
getView()
残念ながら、Android は、Activity を変更する私の Intent を聞く前に、測定のスタックを終了することを主張しているようです。インテントを強制的にすぐに開始する方法はありますか? たとえば、オーバーライドすることで何かを達成できますContext.startActivity()
か?
android - Android - カスタム ビューの幅と高さが 0 です
垂直 LinearLayout 内に 2 つの TextViews を持つカスタム ビューを作成しようとしていますが、それがどのように機能するかについて完全に混乱しています。
onDraw メソッドが呼び出されていないため、現在何も表示されていません。これは、私のビュー (LinearLayout?) の幅と高さが両方とも 0 であることが原因だと思います。
onMeasure を上書きする必要があると思いますが、setMeasuredDimension(100,100) を試した後、これはまだ機能していません。
ビュー内でxmlを膨張させ、その中で2つのTextViewを使用しようとしています。
説明も素晴らしいので、これがどのように機能するかを理解できることを願っています.
ありがとう
size_button.xml
SizeButton.java
ProductFragment.java - ボタンがフラグメントに追加される場所
android - カスタム ビュー ラップ コンテンツ オーバーライド OnMeasure
ビットマップが描画されるカスタム ビューを作成しました。問題は、設定したレイアウトの幅/高さに関係なく、カスタム ビューが画面全体を占めることです。
私はフォーラムを調べていて、onmeasure メソッドのオーバーライドについて読みましたが、私にとってはゼロを返すため、幅と高さがゼロに設定されています。
これが私がこれまでに行ったことです:
編集
完全な XML:
カスタムビューを設定した私のフラグメントでは、次のとおりです。
次に、カスタム ビュー クラスで onMeasure を次のように呼び出します。
wrapHeight と wrapWidth はゼロとして返されます。誰かアドバイスをいただけますか?カスタムビューなどは初めてなので、掘り下げていただければ幸いです;)
****編集**** これはスライダーであることを追加する必要があるため、カスタムビューでは onscroll メソッドを使用しています...それによって状況が変わる可能性があると思います。ビューがスクロールされるフレーム画像があるので、ビューの高さをフレームの高さの 2 倍に設定する必要があると思いますか??
誰でも助けることができますか?
レイアウト構造
java - onMeasure メソッドを呼び出すにはどうすればよいですか? - アンドロイド
1 つのビューで 1 つのアクティビティがあります。このビューの目的は、正方形のグリッドを表示することです。正方形の辺は、画面の幅を水平に存在する正方形の数で割った値に等しくなります。
カスタムの高さでビューを作成するのにすでに苦労していましたが、これを行いました:
問題は、デバッグすると、squareSide 変数の値が 0 になることです。おそらく onMeasure() が createGuideLines() の後に呼び出されていると思いました。以前に電話した場合、問題は解決しますか? onMeasure() メソッドを呼び出すメソッド requestLayout() があることをドキュメントで読みましたが、それを実装する方法についての手がかりがありません。
御時間ありがとうございます。
android - レイアウトの幅と高さを変更するときに onMeasure を呼び出す方法
こんにちは私はキャンバスの描画に取り組んでいます。そのために、カスタム ビューActivity
(extends ) を使用しています。このビューは、キャンバスをスクロールするために mainactivity(extends ) にView
追加され、カスタム ビューの幅と高さは 700*3000 になり、実行時にカスタム ビューの幅と高さが増加しました。ScrollView
Activity
onMeasure()
幅と高さを変更するときにどのように呼び出すことができますか。
これonMeasure()
は、カスタム ビューが呼び出されたときに呼び出されます。ただし、実行時には、呼び出されない限りonResume()
呼び出されません。
の呼び出しには、 inonMeasure()
を使用しています。measure(width,heigt);
onTouch()
onMeasure()
しかし、それは呼び出されません。実行時に呼び出すことは可能ですか。では、どのように?誰でも私に解決策を教えてください。
android - onMeasure は 1,500 回以上呼び出されます
最近、アプリの重大なパフォーマンスの問題に気付きました。私は基本的に次のレイアウトを持っています...
説明
要するに、ページとしてViewPager
3 を保持する a がありRelativeLayout
ます。各ページ内には多数の がありTextView
ます。最近、オートコンプリート用の簡単な SQL クエリを実行するためにEditText
を入力すると、多くの遅延が発生することに気付きました。TextWatcher
私の HTC One M8 は、テキストを入力するときに途切れたり遅れたりしますが、約 7 ミリ秒しかかからないクエリを測定したので、遅いのはクエリではないことがわかります。
メソッド プロファイリング、Systrace、および昔ながらのLog
デバッグを使用した結果、文字を入力するたびに、EditText
約1,700 の呼び出しが A、B、および C内のonMeasure
で行われていることがわかりました。累積すると、全体で約 15 個の独立した しかありません。ページ。通常は1 回か 2 回ではなく、それぞれが何百回も呼び出されていることに気付きました。TextView
RelativeLayout
TextView
onMeasure
質問
ページ B に を入力すると、ページ A と C の他の も「再測定」される
理由がわかりません。さらに重要なことに、なぜが頻繁に呼び出されるのかについて洞察を持っている人はいますか? そして、への呼び出しの数を大幅に減らす解決策を知っている人はいますか?EditText
TextView
onMeasure
onMeasure
詳細
これは役立つかもしれません:onMeasure
呼び出しRelativeLayout
の伝播onMeasure
がViewPager
.