問題タブ [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.
java - 描画される前に、サイズ変更されたカスタムビューの幅と高さを取得する方法
私のカスタム View .xml では、幅と高さを として定義しましw = 600dp , h = 700dp
た。ビューが描画された後に getMeasuredHeight() / getMeasuredWidth() が幅と高さの値を与えることを知っています.xmlファイルで指定したものとは異なる場合があります。ビューが実際にレイアウトに描画される前に取得する回避策getMeasuredHeight()
と値がありますgetMeasuredWidth()
、onMeasure()
?を使用せずに
dp
また、異なる画面で変更されたサイズを計算する方法は? エミュレーターで実行すると、私のように600h*700w
に変換され300*300
ます。
android - Android: 動的な高さを持つ ScrollView のリストビュー
現在、スクロールビューで設定メニューを開発しています。基本的な構造は次のようになります。
リストビューの場合、カスタム実装を使用して、高さを固定し、スクロールビュー内でスクロールできるようにしました(注:多くの要素があるため、スクロールビュー内でリストビューを使用する必要があり、線形レイアウトを使用するといいじゃない)。
}
リストビューの各項目にはラベルとグリッドビューが含まれており、すべて正しく表示されています。しかし今、ユーザーがラベルをクリックしてグリッドビューの可視性を表示および非表示にできる機能を実装したいと考えています。
しかし、ラベルをクリックしてグリッドビューが表示されると、リストビューの高さが新しい開いている要素に適応しません。常に同じ高さにとどまり、要素を開くと、下の要素が表示されなくなります。requestLayout()
これは、リストビューのメソッドを呼び出して再度トリガーする場合にも発生onMeasure
します。
誰かが私が間違っていることを理解していますか?
編集:私のxmlファイルを更新しました:)
android - ViewGroup onMeasure を書き換え、子の match_parent が機能しない
onMeasure
カスタムメソッドを使用したカスタム Relativelayout があります。以下のようなコード。
上記のコードの目的は、設定することheight=width*ratio
です。
それをした後。layout_height
値を持つ子ビューはmatch_parent
、親の高さを埋めません。のように動作しwrap_content
ます。
そして、子ビューのmeasuredHeight
andをデバッグします。height
それらは等しくないことがわかりました。変です。
コードの何が問題なのか知りたいです。どうすれば修正できますか?
android - Android: match_parent に設定すると、onMeasure() で ViewGroup のディメンションを取得します
その領域に 4 つの要素を均等に分散することを目的として、独自の ViewGroup を作成しました。
ViewGroup 自体は、幅と高さの両方で match_parent に設定され、その上に TextView があります。
当面の問題は、独自のクラスから ViewGroup 自体の幅を取得して、子を配布する方法です。これは onMeasure メソッドで行われると思いますが、ここと Javadoc を掘り下げた後、私を助けることができるものを見つけることができませんでした.
これが私があなたを見つけた理由です!
android - Android: カスタム ビューが間違った x、y 座標で描画される
カスタム ビューを作成し、ビュー グループから継承し、このビュー グループ内にカスタマイズされた方法でカスタム サブビューをレイアウトしようとしています。基本的に、各イベントがその長さに対して画面の高さを占める Outlook のものと同様のカレンダー ビューを作成しようとしています。
ViewGroup のコンストラクターで View の ArrayList を初期化し、onMeasure、onLayout、および onDraw をオーバーライドすると、レンダリングされたビューはすべて (0,0) から始まることを除いて、すべて正常に機能します。他の値。幅と高さは問題ありませんが、上と左だけが間違っています。
これは、わかりやすく簡潔にするために省略したコードです。
android - Android: measureChildWithMargins は、view.measure とは異なる結果を返します
Android で ViewGroup を拡張しています。現在、テストのためだけに、このビュー グループに子ビューを 1 つだけ追加しています。これは、コードによってインスタンス化された TextView です。
ViewGroup の onMeasure() で を呼び出すとchild.measure()
、作成時に WRAP_CONTENT を高さレイアウト パラメータとして渡しますが、子はその高さを画面全体の高さとして測定します。ただし、を使用して子供を測定するとmeasureChildWithMargins
、正しい身長が返されます。どうしてこれなの?
android - 動的な高さを持つ Android ViewPager
いくつViewPager
かのフラグメントを表示してそれらの間をスワイプする必要がありますがViewPager
、コンテンツに基づいて高さは動的です。各リストが1つのタブに配置され、タブを変更することで高さがViewPager
適切に変更される複数のリストがあるとViewPager
仮定しonMeasure
ます。ViewPager
測定。
ここにあるMyViewPager
:
また、以下のようにフラグメントが表示されるようになったときのonMeasure
メソッドをトリガーしようとしましたが、何も変わりません。MyViewPager