4

The xml layout file looks like:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout  android:id="@+id/my_rootViewID"
    <LinearLayout>

        <ImageView/>

        <TextView/>

        <ImageView/>

    </LinearLayout>
</FrameLayout>

I have tried this:

my_view = findViewById(R.id.my_rootViewID);
my_view.setOnClickListener( new My_OnClickListener() );

My problem: This works only with the ImageViews, but the TextView is not clickable. I could set OnClickListener specifically to the TextView as well, but I have many TextViews (in other cases), so adding theese listeners would be very slow, and elaborate.

4

2 に答える 2

2

あなたはこれを行うことができます:

ViewTreeObserver viewTreeObserver = myView.getViewTreeObserver();
viewTreeObserver.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {...}

のドキュメントからViewTreeObserver:

ビュー ツリー オブザーバーは、ビュー ツリーのグローバルな変更を通知できるリスナーを登録するために使用されます。このようなグローバル イベントには、ツリー全体のレイアウト、描画パスの開始、タッチ モードの変更が含まれますが、これらに限定されません。

于 2013-08-01T16:56:49.807 に答える