0

更新:Androidでは、(私が間違っている場合は正しく)ビューを表示するには、ビューに1つの親が必要であるように見えます。これは、ビューを共有できないという点で他の多くのUIシステムとは異なります。これが事実かどうか誰かが確認できますか?

私は広告ビューを持っています(ええ、私も広告が好きではありません)、それは2つの別々のリストビューに表示される必要があります。両方のリストビューにこの一般的な広告ビューを含めるにはどうすればよいですか。(広告ビューは、リストアダプターではなく、アクティビティによって維持されます)。片方に追加すると、もう片方から削除されます。追加すると、親は1つだけになると表示されるためです。そこで、他のリストビューでたまたま所有者である親を削除します。そのため、広告は一度に1つのリストにのみ表示されることになります。しかし、より一般的には、2つの別々のビューにそれぞれ共通の別のビューを含めるにはどうすればよいでしょうか。

簡単にするために、v1とv2の2つのビューがあり、画像とテキストを含むFrameLayoutである3番目のビューv3がある場合。このv3をv1およびv2からどのように参照する必要がありますか。v1とv3にv3を含めるだけですか?両方に指摘してもらいたいV3の特定のインスタンスですか?

これがmy_ad.xmlを共有したい広告です(ListAdaptersではなくMainActivityによって作成/膨張/更新されたことに注意してください):

<FrameLayout     android:id="@+id/myAd">
   <ImageView></ImageView>
</FrameLayout>

これが私のlist_view_1_rowです

<RelativeLayout>
 ......
 <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/myAdHolder" />
     <include
    android:id="@+id/myAdInclude"
    layout="@layout/my_ad" />
 </LinearLayout>
<RelativeLayout>

これがlist_view_2_rowです

<RelativeLayout>
 ......  .... 
 ......
 <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/myAdHolder" />
     <include
    android:id="@+id/myAdInclude"
    layout="@layout/my_ad" />
 </LinearLayout>
<RelativeLayout>

それで、my_ad.xmlを膨らませて、MainActivityにそれへの参照を保持するとしましょう。

   private FrameLayout myAdd;

   onCreate()
      myAd = (FrameLayout)inflater.inflate(my_ad.xml)

ここで知っておく必要があるのは、このビューINSTANCE(アクティビティによって拡張され、そのコンテンツがアクティビティによって管理される)を2つのリストビューの要素でどのように共有するかです。リストビューのアダプタ内で設定するにはどうすればよいですか。追加すると、Viewに複数の親が含まれていてはならないという問題が発生します。行アイテム内のビューへの参照を取得しようとすると。アダプタのViewHolder値をこの共通のビューインスタンスに設定するにはどうすればよいですか?

ListAdaptersではなく、アクティビティ内で広告を管理しているので、それぞれが独自のアダプターを持つ2つの別々のリスト内でアクティビティ管理ビューを共有したいと思いました。

ところで、adViewの追加を追加する以外に試したもう1つのことは、アダプター内でmyAdIncludeへの参照を取得しようとすることでしたが、これはnullとして返されました。それでも、どういうわけか実際に値を設定する必要があります......

ビューコンテンツの作成/更新が論理的にどちらかのリストビューに排他的に属していない場合に、2つ以上のリストビュー/アダプタによって共有されるビューを維持する方法についてのコメント/意見も欲しいですか?含まれているビューが更新されると、リストビューは自動的に更新されますか?

4

1 に答える 1

0

ビューを表示するには、一度に1つの親ビューが必要であるため、Androidでは通常ビューを共有できません。

于 2012-08-23T02:04:23.873 に答える