自定义ViewGroup布局显示不正确。

新手上路,请多包涵
  1. 自定义三个View,都是继承ViewGrop,写法如下方法:

public class ViewGroupB extends ViewGroup {
    

    public ViewGroupB( Context context ) {
        super( context );
        
    }
    
    public ViewGroupB( Context context, AttributeSet attrs ) {
        super( context, attrs );
        
    }
    
    public ViewGroupB( Context context, AttributeSet attrs, int defStyle ) {
        super( context, attrs, defStyle );
        
    }
    
    @Override
    protected void onLayout( boolean changed, int l, int t, int r, int b ) {
        
    }
    
    @Override
    public boolean dispatchTouchEvent( MotionEvent ev ) {
        Log.d( "TAG", "dispatchTouchEvent B : " + ev.getAction() );
        return super.dispatchTouchEvent( ev );
    }
    
    @Override
    public boolean onInterceptTouchEvent( MotionEvent ev ) {
        Log.d( "TAG", "onInterceptTouchEvent B : " + ev.getAction() );
        return super.onInterceptTouchEvent( ev );
    }
    
    @Override
    public boolean onTouchEvent( MotionEvent event ) {
        Log.d( "TAG", "onTouchEvent B : " + event.getAction() );
        return super.onTouchEvent( event );
    }
    
}
  1. 添加布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <com.example.tempdemov.ViewGroupA
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#ff0000" >

        <com.example.tempdemov.ViewGroupB
            android:layout_width="300dp"
            android:layout_height="300dp"
            android:background="#00ff00" >

            <com.example.tempdemov.ViewGroupC
                android:layout_width="150dp"
                android:layout_height="150dp"
                android:background="#0000ff" >
            </com.example.tempdemov.ViewGroupC>
        </com.example.tempdemov.ViewGroupB>
    </com.example.tempdemov.ViewGroupA>

</RelativeLayout>
  1. 效果,
    图片描述

这样做只是想看看View的点击事件是怎样处理的,没想到这被卡住了,懂得伙伴们帮忙看看,万分感谢。

阅读 3.1k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏