44

How to use viewGroup in android

  • [Here](http://developer.android.com/reference/android/view/ViewGroup.html) is a documentation from Google – Vinay Sep 02 '09 at 15:07
  • http://about-android.blogspot.com/2010/05/create-dynamic-view-group.html This example is OK. Be sure to set unique id-s for such views when using them in `ListView`, or they can be redrawn on scrolling – shaman.sir Sep 13 '10 at 10:30
  • 1
    `ViewGroup` is any group of views literally, - `ListView`, `Linear`/`Horizontal`/`VerticalLayout` ..., all these kinds. What example do you want? Adding or removing views? – shaman.sir Oct 12 '10 at 18:23

1 Answers1

31

As mentioned, ViewGroup is an abstract class that all ViewGroups extend, LinearLayout for instance is a ViewGroup.

MyViewGroup.java:

public class MyViewGroup extends LinearLayout {

    public MyViewGroup(Context context) {
        super(context);
    }

    public MyViewGroup(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public MyViewGroup(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    @Override
    protected void onLayout(boolean changed, int l, int t, int r, int b) {
        super.onLayout(changed, l, t, r, b);
        Log.e("SWIPED", "onLayout : " + Boolean.toString(changed));
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent event) {
        super.onInterceptTouchEvent(event);
        Log.e("SWIPED", "onInterceptTouchEvent : " + event.getAction());
        return false;
    }
}

Main.XML:

<com.example.MyViewGroup xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/screen" android:orientation="vertical"
    android:layout_width="fill_parent" android:layout_height="fill_parent">

<TextView android:id="@+id/tv1" android:layout_width="fill_parent"
    android:layout_height="wrap_content" android:text="TEXT ONE"
    android:padding="20dip" android:background="@android:color/background_dark" />

<TextView android:padding="20dip" android:background="@android:color/background_light"
    android:id="@+id/tv2" android:layout_height="wrap_content"
    android:text="TEXT TWO" android:layout_width="fill_parent" />

</com.example.MyViewGroup>

MainActivity.java:

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}
worked
  • 5,762
  • 5
  • 54
  • 79