2016-12-21 1 views
1

나는 Weekview이라는 이라는 사용자 정의 CardView 객체를 만들려고합니다. WeekView은 CardView를 확장합니다. XML 파일에 CardView 레이아웃이 있습니다. WeekView은 XML 파일에서 레이아웃을 "복사"합니까? 간단히 말해XML 레이아웃 파일에서 사용자 정의 CardView 객체를 만드는 방법은 무엇입니까?

, 나는이 작업을 수행 할 수 있도록하려면 : mainLayout 빈 선형 레이아웃입니다 주요 활동

WeekView weekCard = new WeekView(); 
mainLayout.addView(weekCard); 

을. WeekCard는 XML 레이아웃 파일의 카드처럼 보입니다.

<?xml version="1.0" encoding="utf-8"?> 

<android.support.v7.widget.CardView 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
xmlns:tipbook="http://schemas.android.com/apk/res-auto" 
android:id="@+id/week_card_view" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:layout_marginLeft="8dp" 
android:layout_marginRight="8dp" 
android:layout_marginTop="8dp" 
tipbook:contentPadding="12dp"> 

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <TextView 
     android:text="Week View" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/week_view_title" 
     android:textSize="12sp" 
     android:textAlignment="gravity" 
     android:gravity="center" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentLeft="true" 
     android:textColor="@android:color/darker_gray" 
     android:layout_marginTop="4dp" 
     android:layout_marginLeft="4dp" /> 

    <ImageButton 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     tipbook:srcCompat="@drawable/ic_more_vert_black_18dp" 
     android:id="@+id/week_settings_btn" 
     android:background="@color/cardview_light_background" 
     android:scaleX="1" 
     android:scaleY="1" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" 
     android:tint="@color/cardview_shadow_start_color" 
     android:tintMode="src_in" 
     android:layout_marginRight="4dp" 
     android:layout_marginTop="4dp" /> 


    <LinearLayout 
     android:id="@+id/week_days" 
     android:orientation="horizontal" 
     android:layout_width="match_parent" 
     android:layout_height="55dp" 
     android:layout_below="@id/week_settings_btn" 
     android:weightSum="7" 
     android:layout_marginTop="12dp" > 



    </LinearLayout> 

    <TextView 
     android:text="Last Week" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/week_days" 
     android:id="@+id/visible_week" 
     android:textSize="14sp" 
     android:textAlignment="gravity" 
     android:gravity="center" 
     android:layout_marginTop="12dp" /> 

    <ImageButton 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/week_days" 
     android:layout_marginTop="12dp" 
     tipbook:srcCompat="@drawable/ic_expand_more_black_18dp" 
     android:id="@+id/more_less_week" 
     android:scaleX="1" 
     android:scaleY="1" 
     android:tint="@color/common_google_signin_btn_text_light_default" 
     android:tintMode="src_in" 
     android:background="@color/cardview_light_background" 
     android:visibility="gone"/> 
</RelativeLayout> 
</android.support.v7.widget.CardView> 
+0

당신은 더 정교한 액세스하려면? 왜보기를 메인보기에 직접 추가하지 않고 객체를 전달하고 싶지는 않은지 말해 주시겠습니까? PLZ에 대한 이유? –

답변

1

가 다시 사용할 레이아웃을 포함하는 그 카드보기

<include 
    android:id="@+id/some_id" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    layout="@layout/your_card_layout" /> 

에 링크 메인 뷰에서 include 태그를 사용

다음은 XML 파일의 단축 버전입니다.

그것의 내부 전경

View includedLayout = findViewById(R.id.some_id); 
Button buttonInsideTheIncludedLayout = (Button)includedLayout.findViewById(R.id.button); 
관련 문제