2010-05-14 5 views
1

코드에서 슬라이딩 서랍을 만들려고하지만 생성자의 AttributeSet 부분을 어떻게 처리해야하는지 이해할 수 없습니다.코드에서 슬라이딩 서랍을 어떻게 만듭니 까?

무엇을해야합니까?

또한 슬라이더가 나타날 코드에서 어떻게 정의합니까? 그것은 SlidingDrawer처럼 보이는

감사합니다,

+0

SlidingDrawer는 이미 Android에서 사용할 수 있습니다. 그럼에도 불구하고 그것을 만들고 싶다면 Android 구현을 살펴보십시오. – Karan

+0

알아 두지 만이 생성자를 사용하는 방법을 이해하지 못했습니다. SlidingDrawer (컨텍스트 컨텍스트, AttributeSet attrs) 애트리뷰트를 어떻게 만듭니 까? – Alex

답변

2

은 자바 코드에서 직접 만들 수 없습니다. XML 레이아웃으로 정의하고 해당 레이아웃을 확장해야합니다.

죄송합니다.

+0

답변 해 주셔서 감사합니다. – Alex

7

SlidingDrawer는 핸들 및 콘텐츠를 자바 코드에서 새로운 것은 정의해야 할 수 있기 때문에 다음과 같이 XML 레이아웃에서 팽창 할 수

sliding_drawer.xml :

자바 코드에서
<?xml version="1.0" encoding="utf-8"?> 
<SlidingDrawer 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/drawer" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 

    android:handle="@+id/handle" 
    android:content="@+id/content"> 
    <ImageView 
     android:id="@id/handle" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/tray_handle_bookmark" 
     /> 
    <LinearLayout 
     android:id="@id/content" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" 
     android:background="#FF000000" 
     /> 
</SlidingDrawer> 

:

// you main Layout 
LinearLayout mainLayout = new LinearLayout(this); 
     mainLayout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT)); 
     mainLayout.setOrientation(LinearLayout.VERTICAL); 

// add sliding Drawer 
LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     slidingDrawer = (SlidingDrawer)inflater.inflate(R.layout.sliding_drawer, mainLayout, false); 
     mainLayout.addView(slidingDrawer); 

// get Layout for place your content in sliding drawer 
LinearLayout slideContent = (LinearLayout)slidingDrawer.findViewById(R.id.content); 

slideContent.addView(.....); // add your view to slideDrawer