問題タブ [android-viewgroup]

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 投票する
5 に答える
23297 参照

android - Android ビューのすべてのサブビューをループしますか?

私はAndroid用のゲームに取り組んでいます。それを実装するのを助けるために、私の考えは、ビューのサブクラスを作成することです。次に、このクラスのいくつかのインスタンスをメイン ビューの子として挿入します。各インスタンスは、(OnTouchListener を介して) 押されたときの検出を処理します。

私が今抱えている問題は、これらすべてのサブビューをループして、それらのステータスを読み取って処理できるようにする方法です。(つまり、すべてが特定の状態に達すると、何かが起こるはずです)。

または、タッチに反応する複数のオブジェクトを画面上に表示し、そのステータスを確認できるより良い方法はありますか?

0 投票する
2 に答える
958 参照

android - TextView 以外を含むグループ ビューを提供するときに、ExpandableListView のデフォルトのリスト項目プレス動作をどのように保持できますか?

TextView以外を含むグループビューを提供するときに、ExpandableListViewのデフォルトのリストアイテムプレス動作を維持することは可能ですか? 私が言及している動作は、押されたアイテムの背景色が黄色に変わる場所です。

TextView や Button などを含むグループ ビューを提供するたびに、動作が失われます。

0 投票する
2 に答える
17458 参照

android - RelativeLayoutを拡張し、dispatchDraw()をオーバーライドして、ズーム可能なViewGroupを作成します

ViewGroup全体(RelativeLayoutなど)を一度にズームする方法を尋ねる人が何人かいます。現時点では、これを達成する必要があります。私にとって最も明白なアプローチは、ズームスケールファクターを単一の変数としてどこかに保持することです。また、子ビューのonDraw()メソッドのそれぞれで、グラフィックが描画される前に、そのスケール係数がCanvasに適用されます。

ただし、それを行う前に、私は賢く(ha-通常は悪い考えです)、RelativeLayoutをZoomableRelativeLayoutというクラスに拡張しようとしました。私の考えでは、オーバーライドされたdispatchDraw()関数でCanvasにスケール変換を1回だけ適用できるため、子ビューでズームを個別に適用する必要はまったくありません。

これがZoomableRelativeLayoutで行ったことです。これはRelativeLayoutの単純な拡張であり、dispatchDraw()がオーバーライドされます。

mScaleFactorは、同じクラスのScaleListenerによって操作されます。

それは実際に機能します。ピンチしてZoomableRelativeLayoutをズームすると、その中に保持されているすべてのビューが適切に再スケーリングされます。

問題があることを除いて。これらの子ビューの一部はアニメーション化されているため、定期的にinvalidate()を呼び出します。スケールが1の場合、これらの子ビューは定期的に完全に再描画されます。スケールが1以外の場合、これらのアニメーション化された子ビューは、ズームスケールに応じて、表示領域の一部でのみ更新されるか、まったく更新されないように見えます。

私の最初の考えは、個々の子ビューのinvalidate()が呼び出されると、親のRelativeLayoutのdispatchDraw()からCanvasが渡されるのではなく、システムによって個別に再描画される可能性があるということでした。つまり、子ビューはそれ自体を更新することになります。ズームスケールを適用せずに。しかし奇妙なことに、画面上に再描画される子ビューの要素は正しいズームスケールになっています。システムがバッキングビットマップで実際に更新することを決定した領域は、スケーリングされていないままであるかのようです-それが理にかなっている場合。言い換えると、アニメーション化された子ビューが1つあり、初期スケール1から徐々にズームインし、ズームスケールが1のときにその子ビューがある領域に架空のボックスを配置した場合、次に、invalidate()を呼び出すと、その架空のボックスのグラフィックが更新されるだけです。しかし、更新されると見られるグラフィック適切な規模で行われています。子ビューが1のスケールであった場所から完全に離れるまでズームインすると、その一部は更新されていないように見えます。別の例を挙げましょう。私の子供のビューが、黄色と赤を切り替えることでアニメーション化するボールであると想像してください。ボールが右下に移動するように少しズームインすると、ある時点で、ボールの左上の4分の1が色をアニメーション化するのがわかります。

ズームインとズームアウトを続けると、子のビューが適切かつ完全にアニメーション化されます。これは、ViewGroup全体が再描画されているためです。

これが理にかなっていることを願っています。私はできる限り説明しようとしました。ズーム可能なViewGroup戦略で、私は少し敗者になっていますか?別の方法はありますか?

ありがとう、

トレブ

0 投票する
2 に答える
2757 参照

android - FrameLayout の目的は何ですか?どのシナリオで使用する必要がありますか?

FrameLayoutAndroidではどのような目的に役立ちますか? 設計された特定のシナリオはありますか?

私の Android アプリケーションでは、2 つImageViewの を重ねて表示する必要があるシナリオがあります。これは、.pngこの画像の上に 9 パッチのドローアブルを含む画像ファイルです。

ViewGroupこの目的にはどちらを使用する必要がありますか:RelativeLayoutまたはFrameLayout?

また、各 を使用する必要があるさまざまなシナリオも知りたいですViewGroup

0 投票する
2 に答える
13978 参照

android - androidで「android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5035)」エラーを修正する方法

子(ルートではない)要素RelativeLayoutを使用したレイアウトがあり、ViewPagerを作成して、Relativeレイアウトの子として挿入するので、次のようになります。

+相対レイアウト(ルート)

|

+-相対レイアウト(子)

|

+ --- ViewPager

今のところ-すべて大丈夫です。

しかし、その後、独自のレイアウトでViewPagerにビューアイテムを追加しようとすると、エラーが発生します

そのViewPagerは、havin独自の子ビューを持つRelativeLayoutの子としてどのように機能しますか?

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

android - Android - DP を PX に変換する方法 - 絶対ピクセルに依存しない密度

次のように、実行時にレイアウトを追加する必要がある状況があります。

1.Buttonレイアウトは XML で既に定義されています。

XML のボタン レイアウト

2.ユーザーが をクリックするButtonと、EditTextButtonが既存のレイアウトに動的に追加されます。

EditText & 動的に追加された別のボタン

Gingerbread (Android 2.3.5) で正しく動作します。

G レイアウト 1 G レイアウト 2

Kitkat (Android 4.4.2) では動作しません:

K レイアウト 1 K レイアウト 2

誰かがこの問題の回避策を知っていますか? 使用したコードは次のとおりです。

XML レイアウトは次のとおりです。

また、このようにプログラムでレイアウトを追加する場合、レイアウト要素ごとに手動で ID を設定する必要があります。

私はそれをしました。どうぞ:

0 投票する
2 に答える
1575 参照

android - AndroidでViewGroupをドラッグ/移動

ViewGroup があり、ユーザーが長押ししてcircleMenu. どうすれば移動できViewGroupますか?

Java は次のとおりです。

XML は次のとおりです。

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

android - 特定の設定項目の背景の変更が機能しない

アプリケーションの設定として使用することを好みます。listpref(リストビュー)で特定の項目の背景色を変更したい。以下のコードを使用しました。

しかし、私の好みの活動には何も変わりません。私がする必要がある修正はありますか?