...
그림2. PopFeedHeader 에 CustomPreviewMessage 가 표시된 모습
...
Step 1. (Optional) PopFeedHeader Customize
DefaultPopHeaderViewAdapter
를 상속받아CustomPopHeaderViewAdapter
를 만들고getCustomPreviewMessageLayout
를 오버라이드 합니다.getCustomPreviewMessageLayout
의 파라미터인CustomPreviewMessage
에 message, landingUrl, iconUrl 정보가 담겨있습니다.line 9~17
3번에서 받아온 정보를 토대로 직접 layout 을 구성하고, clickEvent 처리할 수 있습니다.line 24
FeedConfig.feedHeaderViewAdapterClass
를 통해 1번에서 생성한CustomPopHeaderViewAdapter
를 설정합니다.line 29
PopConfig.feedConfig
를 통해 5번에서 설정한 FeedConfig 를 설정합니다.
Code Block | ||
---|---|---|
| ||
public class CustomPopHeaderViewAdapter extends DefaultPopHeaderViewAdapter { @Nullable @Override protected View getCustomPreviewMessageLayout(Context context, ViewGroup parent, CustomPreviewMessage customPreviewMessage) { final LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); if (inflater == null) { return null; } View viewCustomPreviewMessage = inflater.inflate(R.layout.view_custom_preview_message, parent, false); final TextView textCustomPreviewMessageTitle = viewCustomPreviewMessage.findViewById(R.id.textCustomPreviewMessageTitle); textCustomPreviewMessageTitle.setText(customPreviewMessage.getMessage()); viewCustomPreviewMessage.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startDeeplinkActivity(context, customPreviewMessage.getLandingUrl()); } }); return viewCustomPreviewMessage; } } final FeedConfig popFeedConfig = new FeedConfig.Builder(getApplicationContext(), UNIT_ID_POP) ... .feedHeaderViewAdapterClass(CustomPopHeaderViewAdapter.class) ... .build(); final PopConfig popConfig = new PopConfig.Builder(getApplicationContext(), UNIT_ID_POP) ... .feedConfig(popFeedConfig) ... .build(); |
Step 2. (Optional) FeedConfig 사용 설정
- PopFeedHeader 에 CustomPreviewMessage 보이지 않도록 설정
PopConfig.feedConfig
설정시 FeedConfig.feedHeaderViewAdapterClass
를 설정 하지 않으면 PopFeedHeader 의 CustomPreviewMessage 를 보이지 않게 설정할 수 있습니다.
- PopFeedHeader 에 DefaultPreviewMessage 보이도록 설정
PopConfig.feedConfig
설정시 FeedConfig.feedHeaderViewAdapterClass(DefaultPopHeaderViewAdapter.class)
를 설정 하면 기본 제공하는 DefaultPreviewMessage 를 사용할 수 있습니다. (그림 2 참조)
Step 3. (Optional) Preview Interval 설정
PopConfig.previewIntervalInMillis
를 통해서 Preview interval 을 설정합니다. AdPreview, ContentPreview/CustomPreviewMessage 동일하게 interval 이 설정됩니다.
...
PopContentActivity 내에서 사용가능한 Custom Bottom Sheet 입니다. 일반적으로 PopUtilityLayoutHandler 를 Customize 하여 호출합니다.
BottomSheet 호출 코드 (CustomPopUtilityLayoutHandler 사용)
Utility 버튼을 눌렀을 때 아래 코드를 호출하면 BottomSheet 이 열립니다.
...
Code Block |
---|
val inflater: LayoutInflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater val dialogView = inflater.inflate(R.layout.view_fragment_pop_bottom_sheet, null) val textBottomSheet: TextView = dialogView.findViewById(R.id.textBottomSheet) textBottomSheet.setOnClickListener { Toast.makeText(context, "text bottom sheet clicked", Toast.LENGTH_SHORT).show() } val dialog = BottomSheetDialog(context) dialog.setContentView(dialogView) dialog.show() |
(Optional) PopContentActivity 에 Theme을 적용하여 BottomSheet 좌우측 상단 모서리 둥글게 만들기
기본적으로 제공되는 BottomSheet은 흰색 사각형 모양인데, 좌우측 상단을 둥글게 사용하기 위해서는 다음과 같이 설정하면 됩니다.
...