Index
Table of Contents |
---|
POP 디자인 customize 관련 자세한 사항은 POP 디자인 가이드 문서에서 확인 가능합니다.
CTA Color 변경
여기에서는 CTA color 변경을 설명합니다. Color 변경 외에 CtaView를 Default로 제공되는 View가 아닌, 다른 모양의 View로 만들고 싶으신 경우 여기를 참조해주세요.
...
Code Block |
---|
new PopConfig.Builder(getApplicationContext(), "POP_UNIT_ID")
.popUtilityLayoutHandlerClass(MyPopUtilityLayoutHandler.class) |
Pop Toolbar (AppBar) Customize
PopConfig, FeedConfig 를 사용하여 Toolbar 영역을 Customize 할 수 있습니다. PopConfig 에 FeedConfig 를 설정할 때 FeedConfig.feedToolbarHolderClass
를 설정하는데 여기에 DefaultPopToolbarHolder
를 상속받은 class 를 사용해서 Pop Toolbar customize 가능합니다.
Code Block | ||
---|---|---|
| ||
final FeedConfig popFeedConfig = new FeedConfig.Builder(this, unitIdPop)
...
// 아래에서 소개하는 TemplatePopToolbarHolder, CustomPopToolbarHolder 등을
// 용도에 맞게 사용합니다
.feedToolbarHolderClass(DefaultPopToolbarHolder.class)
...
.build();
final PopConfig popConfig = new PopConfig.Builder(this, unitIdPop)
...
.feedConfig(popFeedConfig)
...
.build(); |
DefaultPopToolbarHolder
DefaultPopToolbarHolder
를 바로 설정하면 간단하게 Pop Toolbar 가 설정됩니다.
...
TemplatePopToolbarHolder
DefaultPopToolbarHolder
를 상속하여 TemplatePopToolbarHolder
를 만들어 사용합니다. 그리고 기본 제공하는 PopToolbar 를 사용하여 미리 구성되어있는 PopToolbarTemplate 을 수정하여 customize 가능합니다. Toolbar 내의 Pop feed icon, title, toolbar background color 등을 변경할 수 있고 Toolbar 우측에 클릭 가능한 이미지 버튼을 추가할 수 있습니다.
...
Toolbar icon 변경:
toolbar.setIconResource
Toolbar title 변경:
toolbar.setTitle
Toolbar background color 변경:
toolbar.setBackgroundColor
Toolbar 우측 문의하기 버튼 추가:
addInquiryMenuItemView
Toolbar 우측 custom 버튼 추가:
toolbar.buildPopMenuItemView
를 통해PopMenuImageView
를 생성하고 생성된 View 를toolbar.addRightMenuButton
를 통해 toolbar에 추가합니다. (우측 버튼은 add 된 순서대로 좌측부터 우측으로 배열됩니다.)showInquiry
함수: 문의하기 페이지를 엽니다. 문의하기 버튼 icon 을 customize 할 때 이 함수를 통해서 문의하기 페이지를 열 수 있습니다.
Code Block | ||
---|---|---|
| ||
// DefaultPopToolbarHolder 상속
public class TemplatePopToolbarHolder extends DefaultPopToolbarHolder {
@Override
public View getView(Activity activity) {
toolbar = new PopToolbar(activity); // PopToolbar 에서 제공하는 기본 Template 사용
toolbar.setTitle("TemplatePopToolbarHolder");
toolbar.setIconResource(R.mipmap.ic_launcher);
toolbar.setBackgroundColor(Color.LTGRAY);
addInquiryMenuItemView(activity); // 문의하기 버튼은 이 함수를 통해 간단하게 추가 가능합니다.
addRightMenuItemView1(activity); // custom 버튼 추가
addRightMenuItemView2(activity);
return toolbar;
}
// custom 버튼 추가는 toolbar.buildPopMenuItemView 를 사용하여 View 를 생성하고
// toolbar.addRightMenuButton 를 사용하여 toolbar 에 추가합니다.
private void addRightMenuItemView1(@NonNull final Activity activity) {
PopMenuImageView menuItemView = toolbar.buildPopMenuItemView(activity, R.mipmap.ic_launcher);
menuItemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showInquiry(activity);
}
});
toolbar.addRightMenuButton(menuItemView);
}
private void addRightMenuItemView2(@NonNull final Activity activity) {
PopMenuImageView menuItemView = toolbar.buildPopMenuItemView(activity, R.mipmap.ic_launcher);
menuItemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showPotto(activity);
}
});
toolbar.addRightMenuButton(menuItemView);
}
} |
CustomizePopToolbarHolder
DefaultPopToolbarHolder
를 상속받아서 사용하는 점은 TemplatePopToolbarHolder
와 동일합니다. 차이점은 PopToolbar 를 사용하지않고 layout 을 직접 구성하여 Toolbar 영역을 전부 customize 할 수 있습니다.
...
CustomPopToolbarHolder
classCode Block // DefaultPopToolbarHolder 상속 public class CustomPopToolbarHolder extends DefaultPopToolbarHolder { @Override public View getView(Activity activity) { // 직접 구성한 layout 을 사용합니다 ViewGroup root = (ViewGroup) activity.getLayoutInflater().inflate(R.layout.view_pop_custom_toolbar, null); View buttonInquiry = root.findViewById(R.id.buttonInquiry); buttonInquiry.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 문의하기 페이지 열기 showInquiry(activity); } }); return root; } }
CustomPopToolbarHolder
에서 사용하는layout.view_pop_custom_toolbar
Code Block <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_vertical" android:orientation="horizontal" android:background="@color/bzv_white_100"> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center_vertical" android:orientation="horizontal" android:paddingLeft="16dp"> <ImageView android:id="@+id/imageIcon" android:layout_width="154dp" android:layout_height="24dp" android:src="@drawable/bz_img_buzzvil_logo" /> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_vertical"> <ImageView android:id="@+id/buttonInquiry" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginRight="16dp" android:src="@drawable/bzv_ic_circle_question" android:tint="@color/bzv_gray_light" /> </LinearLayout> </LinearLayout>