2009-09-02 3 views
41

Как использовать ViewGroup в андроидеКак использовать ViewGroup в андроиде

+2

Как вы хотите использовать его? –

+0

[Здесь] (http://developer.android.com/reference/android/view/ViewGroup.html) - это документация от Google – Vinay

+0

http://about-android.blogspot.com/2010/05/create-dynamic -view-group.html Этот пример в порядке. Не забудьте установить уникальные id-s для таких просмотров при их использовании в 'ListView', или их можно перерисовать при прокрутке. –

ответ

31

Как уже упоминалось, ViewGroup является абстрактным классом, что все ViewGroups продлить, LinearLayout, например, является 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); 
    } 
} 
+0

Класс MyViewGroup здесь ничего не делает, ничего не печатает. – user606669

+3

Я не думаю, что этот ответ может помочь кому-либо другому. Поскольку он расширяет «LinearLayout», и все эти задания должны быть переопределены, вызывается в «LinearLayout». Это не имеет смысла. – hguser

+0

Идея состоит в том, чтобы показать, что такое ViewGroup, с помощью кода-заполнителя. Ни больше ни меньше. – worked

Смежные вопросы