問題タブ [android-percent-library]
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 - linearLayoutウェイトメカニズムの置き換え
バックグラウンド:
- Googleは、パフォーマンスのために、ネストされた重み付きlinearLayoutの使用を避けることをお勧めします。
- ネストされた重み付きlinearLayoutを使用すると、読み取り、書き込み、および保守が困難になります。
- 利用可能なサイズの%であるビューを配置するための適切な代替手段はまだありません。唯一の解決策は重みであり、OpenGLを使用しています。物事を自動スケーリングするためにWPF/Silverlightに表示される「viewBox」のようなものさえありません。
これが、私が自分のレイアウトを作成することにした理由です。このレイアウトを子供たちのそれぞれに、サイズと比較して子供たちの体重(および周囲の体重)を正確に伝えるようにします。
成功したようですが、どういうわけか、追跡できないバグがあると思います。
バグの1つは、textViewに多くのスペースを与えても、テキストが中央ではなく上部に配置されることです。一方、imageViewsは非常にうまく機能します。もう1つのバグは、カスタマイズしたレイアウト内でレイアウト(たとえば、frameLayout)を使用すると、その中のビューが表示されないことです(ただし、レイアウト自体は表示されます)。
それが発生する理由を理解するのを手伝ってください。
使用方法:線形レイアウトの次の使用法の代わりに(私のソリューションがどのように物事を短縮できるかを示すために、意図的に長いXMLを使用します):
私がしていることは単純です(xはビュー自体を重みリストのどこに置くかです):
特別なレイアウトの私のコードは次のとおりです。
android - 親の線形レイアウトの幅を画面のパーセンテージとして設定します
Android アプリケーションを構築していますが、ダイアログ フラグメントがあります。ダイアログ フラグメントには幅が設定されています。ただし、画面サイズが異なるデバイスでアプリを実行すると、ダイアログ フラグメントが適切に中央に配置されないという問題があります。
当初、私が持っていたものは次のとおりです。
ご覧のとおり、幅が定義された relativeLayout があります。相対レイアウトでは使用できないことがわかっているのでlayout_weight
、親の相対レイアウトを次のように線形レイアウトでラップしました。
ただし、画面サイズが小さいデバイスでアプリケーションを実行すると、ダイアログの断片が切り取られるため、それは機能しません。
ダイアログフラグメントの幅を画面サイズのパーセンテージとして設定するにはどうすればよいですか? これはまったく可能ですか、それともプログラムで設定する必要がありますか?
android - xmlでビューの高さと同じくらいmarginTopを与えることは可能ですか?
私はそれを持っていimageView
て、それと同じくらいマージントップをマイナスしようとしていますheight / 2
。私はプログラムでそれを行うことができますが、xmlでもandorid published percentrelative layoutでも可能でしょうか。私はそれを行う方法がわからない、または可能ですか?
android - レイアウトの問題を修正
シナリオ: 4 つのボタンを Relative Layout に配置しました。これらのボタンのテキストはアプリの使用期間を通じて変化し、テキストの長さに応じてボタンが縮小または拡大します。使用: RelativeLayout.getChildAt().setText();
Q1) しかし、各ボタンが画面幅の 40% を占める必要がありますが、高さはさまざまです。Q2)特に私のコードでは、getChildAt()を使用してボタンにアクセスする必要があります。
RelativeLayout を置き換えてボタンの幅を画面幅の 40% に設定し、特にgetChildAt()を使用してこれらのボタンにアクセスできるようにするには、どのレイアウト タイプを使用する必要がありますか? SomeLayout.getChildAt(); レイアウトがボタンの直接の親になるようにします。
android - PercentRelativeLayout パーセンテージ値の XML リソース タイプがありませんか?
ディメンション xml ファイルでパーセント値を参照することを許可せずに、新しいパーセント サポート ライブラリがリリースされたようです。
つまり、代わりに:
そのようなものをコーディングできる:
myWidthPercent はリソース ファイルで定義されています。
私は間違っていますか(別の名前で見逃していましたか)、それともGoogleに送信できる機能リクエストですか?
android - PercentRelativeLayout で負のパーセント マージンを設定するにはどうすればよいですか?
PercentRelativeLayout で負のマージンを設定する必要がありますが、次のように xml で試してみると機能しません。
app:layout_marginTopPercent="-10%"
親が測定されるときにプログラムで負のマージンを設定しようとしましたが、PercentRelativeLayout はその子の LayoutParams を保持し、それらに加えられた変更を元に戻します。
dp で負のマージンを設定すると、次のように機能しますが、親のサイズに対して負のマージンを与える必要があります。
android:layout_margin="-10dp"
どうすればいいですか、アイデアはありますか?