1

編集:エミルのコメントから回答が見つかりました。コードは次のようになりました。

FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
               FrameLayout.LayoutParams.WRAP_CONTENT, 
               FrameLayout.LayoutParams.WRAP_CONTENT);
params.setMargins(left, top, right, bottom);
view.setLayoutParams(params);

みんなありがとう:D

私は現在 Android アプリケーションを作成しており、その中に ImageView 要素を表示する動的に作成されたツリーがあります。ただし、これらの画像を配置するために、左パディングを使用して正しく整列させ、パディングの計算方法を動的に変更して、すべてが均等になるようにしました。ただし、これを行うと、パディングが左側の画像の一部を覆い隠します。このパディングの背後に画像が表示されていても、その画像をクリックすると、パディングが使用されている画像が評価されます (最も遠い左要素)。基本的に、パディングが画像に行うことをプログラムで設定する方法があるかどうか疑問に思っていますが、クリックできませんか? マージンは理にかなっていますが、ImageViews にマージンを設定することはできません。

ツリーの設定は次のようになります。

-----A-----
--B--C--D--
-E-F----G--

すべての文字がパディングで動的に配置された ImageView であると想像してください。しかし、B または C をクリックすると、D のコードが評価されます。これは、B と C を覆うパディングが残っているためです。E または F についても同じことが言え、それらをクリックすると、G が評価されます。これらの ImageView を配置する別の方法がわかりません。どんな助けでも大歓迎です。

4

1 に答える 1

5

パディングを layout_margin プロパティに置き換えることを検討してください。そうすれば、パディングされたビューを分離する領域はビューの一部とは見なされず、レイアウトの一部と見なされます。

だから使う

android:layout_margin="10dp"

また:

android:layout_marginLeft="10dp"

あなたのニーズのために。

于 2013-02-28T23:49:45.057 に答える