parent
5469d288ba
commit
42e4c4649b
|
@ -86,6 +86,7 @@
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
<activity android:name=".main.MainActivity" />
|
<activity android:name=".main.MainActivity" />
|
||||||
|
<activity android:name=".audio_content.main.v2.AudioContentMainActivity" />
|
||||||
<activity android:name=".user.login.LoginActivity" />
|
<activity android:name=".user.login.LoginActivity" />
|
||||||
<activity android:name=".user.signup.SignUpActivity" />
|
<activity android:name=".user.signup.SignUpActivity" />
|
||||||
<activity android:name=".settings.terms.TermsActivity" />
|
<activity android:name=".settings.terms.TermsActivity" />
|
||||||
|
|
|
@ -0,0 +1,131 @@
|
||||||
|
package kr.co.vividnext.sodalive.audio_content.main.v2
|
||||||
|
|
||||||
|
import android.content.Intent
|
||||||
|
import android.graphics.Typeface
|
||||||
|
import android.widget.TextView
|
||||||
|
import androidx.core.content.res.ResourcesCompat
|
||||||
|
import com.google.android.material.tabs.TabLayout
|
||||||
|
import kr.co.vividnext.sodalive.R
|
||||||
|
import kr.co.vividnext.sodalive.audio_content.box.AudioContentBoxActivity
|
||||||
|
import kr.co.vividnext.sodalive.audio_content.main.v2.alarm.AudioContentMainTabAlarmFragment
|
||||||
|
import kr.co.vividnext.sodalive.audio_content.main.v2.asmr.AudioContentMainTabAsmrFragment
|
||||||
|
import kr.co.vividnext.sodalive.audio_content.main.v2.content.AudioContentMainTabContentFragment
|
||||||
|
import kr.co.vividnext.sodalive.audio_content.main.v2.free.AudioContentMainTabFreeFragment
|
||||||
|
import kr.co.vividnext.sodalive.audio_content.main.v2.replay.AudioContentMainTabReplayFragment
|
||||||
|
import kr.co.vividnext.sodalive.audio_content.main.v2.series.AudioContentMainTabSeriesFragment
|
||||||
|
import kr.co.vividnext.sodalive.base.BaseActivity
|
||||||
|
import kr.co.vividnext.sodalive.common.Constants
|
||||||
|
import kr.co.vividnext.sodalive.databinding.ActivityAudioContentMainBinding
|
||||||
|
import kr.co.vividnext.sodalive.mypage.alarm.AlarmListActivity
|
||||||
|
|
||||||
|
enum class AudioContentMainTab {
|
||||||
|
HOME, SERIES, CONTENT, ALARM, ASMR, REPLAY, FREE;
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
fun fromOrdinal(ordinal: Int): AudioContentMainTab? {
|
||||||
|
return values().getOrNull(ordinal)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class AudioContentMainActivity : BaseActivity<ActivityAudioContentMainBinding>(
|
||||||
|
ActivityAudioContentMainBinding::inflate
|
||||||
|
) {
|
||||||
|
|
||||||
|
private var fontBold: Typeface? = null
|
||||||
|
private var fontMedium: Typeface? = null
|
||||||
|
|
||||||
|
private var startTabPosition: AudioContentMainTab = AudioContentMainTab.SERIES
|
||||||
|
|
||||||
|
override fun setupView() {
|
||||||
|
startTabPosition = AudioContentMainTab.fromOrdinal(
|
||||||
|
intent.getIntExtra(
|
||||||
|
Constants.EXTRA_START_TAB_POSITION,
|
||||||
|
AudioContentMainTab.SERIES.ordinal
|
||||||
|
)
|
||||||
|
) ?: AudioContentMainTab.SERIES
|
||||||
|
|
||||||
|
setupToolbar()
|
||||||
|
loadFont()
|
||||||
|
setupTabs()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun setupToolbar() {
|
||||||
|
val toolbar = binding.toolbar
|
||||||
|
|
||||||
|
toolbar.ivContentKeep.setOnClickListener {
|
||||||
|
startActivity(
|
||||||
|
Intent(
|
||||||
|
applicationContext,
|
||||||
|
AudioContentBoxActivity::class.java
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
toolbar.ivAlarm.setOnClickListener {
|
||||||
|
startActivity(
|
||||||
|
Intent(
|
||||||
|
applicationContext,
|
||||||
|
AlarmListActivity::class.java
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun loadFont() {
|
||||||
|
fontBold = ResourcesCompat.getFont(this, R.font.gmarket_sans_bold)
|
||||||
|
fontMedium = ResourcesCompat.getFont(this, R.font.gmarket_sans_medium)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun setupTabs() {
|
||||||
|
val tabs = binding.tabs
|
||||||
|
val tabTitles = listOf("홈", "시리즈", "단편", "모닝콜", "ASMR", "다시듣기", "무료")
|
||||||
|
for (title in tabTitles) {
|
||||||
|
tabs.addTab(tabs.newTab().setText(title))
|
||||||
|
}
|
||||||
|
|
||||||
|
tabs.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
|
||||||
|
override fun onTabSelected(tab: TabLayout.Tab) {
|
||||||
|
val selectedTab = AudioContentMainTab.fromOrdinal(tab.position)
|
||||||
|
if (selectedTab == null || selectedTab == AudioContentMainTab.HOME) finish()
|
||||||
|
|
||||||
|
replaceFragment(selectedTab = selectedTab!!)
|
||||||
|
tab.view.isSelected = true
|
||||||
|
setTabFont(tab, fontBold)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onTabUnselected(tab: TabLayout.Tab) {
|
||||||
|
tab.view.isSelected = false
|
||||||
|
setTabFont(tab, fontMedium)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onTabReselected(tab: TabLayout.Tab) {
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
tabs.getTabAt(startTabPosition.ordinal)?.select()
|
||||||
|
replaceFragment(selectedTab = startTabPosition)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun replaceFragment(selectedTab: AudioContentMainTab) {
|
||||||
|
val startFragment = when (selectedTab) {
|
||||||
|
AudioContentMainTab.CONTENT -> AudioContentMainTabContentFragment()
|
||||||
|
AudioContentMainTab.ALARM -> AudioContentMainTabAlarmFragment()
|
||||||
|
AudioContentMainTab.ASMR -> AudioContentMainTabAsmrFragment()
|
||||||
|
AudioContentMainTab.REPLAY -> AudioContentMainTabReplayFragment()
|
||||||
|
AudioContentMainTab.FREE -> AudioContentMainTabFreeFragment()
|
||||||
|
else -> AudioContentMainTabSeriesFragment()
|
||||||
|
}
|
||||||
|
|
||||||
|
supportFragmentManager.beginTransaction()
|
||||||
|
.replace(
|
||||||
|
R.id.fl_container,
|
||||||
|
startFragment
|
||||||
|
)
|
||||||
|
.commit()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun setTabFont(tab: TabLayout.Tab, font: Typeface?) {
|
||||||
|
(tab.view.getChildAt(1) as? TextView)?.typeface = font
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
package kr.co.vividnext.sodalive.audio_content.main.v2.alarm
|
||||||
|
|
||||||
|
import kr.co.vividnext.sodalive.base.BaseFragment
|
||||||
|
import kr.co.vividnext.sodalive.databinding.FragmentAudioContentMainTabAlarmBinding
|
||||||
|
|
||||||
|
class AudioContentMainTabAlarmFragment : BaseFragment<FragmentAudioContentMainTabAlarmBinding>(
|
||||||
|
FragmentAudioContentMainTabAlarmBinding::inflate
|
||||||
|
) {
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
package kr.co.vividnext.sodalive.audio_content.main.v2.asmr
|
||||||
|
|
||||||
|
import kr.co.vividnext.sodalive.base.BaseFragment
|
||||||
|
import kr.co.vividnext.sodalive.databinding.FragmentAudioContentMainTabAsmrBinding
|
||||||
|
|
||||||
|
class AudioContentMainTabAsmrFragment : BaseFragment<FragmentAudioContentMainTabAsmrBinding>(
|
||||||
|
FragmentAudioContentMainTabAsmrBinding::inflate
|
||||||
|
) {
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
package kr.co.vividnext.sodalive.audio_content.main.v2.content
|
||||||
|
|
||||||
|
import kr.co.vividnext.sodalive.base.BaseFragment
|
||||||
|
import kr.co.vividnext.sodalive.databinding.FragmentAudioContentMainTabContentBinding
|
||||||
|
|
||||||
|
class AudioContentMainTabContentFragment : BaseFragment<FragmentAudioContentMainTabContentBinding>(
|
||||||
|
FragmentAudioContentMainTabContentBinding::inflate
|
||||||
|
) {
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
package kr.co.vividnext.sodalive.audio_content.main.v2.free
|
||||||
|
|
||||||
|
import kr.co.vividnext.sodalive.base.BaseFragment
|
||||||
|
import kr.co.vividnext.sodalive.databinding.FragmentAudioContentMainTabFreeBinding
|
||||||
|
|
||||||
|
class AudioContentMainTabFreeFragment : BaseFragment<FragmentAudioContentMainTabFreeBinding>(
|
||||||
|
FragmentAudioContentMainTabFreeBinding::inflate
|
||||||
|
) {
|
||||||
|
}
|
|
@ -21,7 +21,6 @@ import androidx.recyclerview.widget.RecyclerView
|
||||||
import coil.load
|
import coil.load
|
||||||
import coil.transform.CircleCropTransformation
|
import coil.transform.CircleCropTransformation
|
||||||
import coil.transform.RoundedCornersTransformation
|
import coil.transform.RoundedCornersTransformation
|
||||||
import com.orhanobut.logger.Logger
|
|
||||||
import com.zhpan.bannerview.BaseBannerAdapter
|
import com.zhpan.bannerview.BaseBannerAdapter
|
||||||
import com.zhpan.indicator.enums.IndicatorSlideMode
|
import com.zhpan.indicator.enums.IndicatorSlideMode
|
||||||
import com.zhpan.indicator.enums.IndicatorStyle
|
import com.zhpan.indicator.enums.IndicatorStyle
|
||||||
|
@ -34,6 +33,8 @@ import kr.co.vividnext.sodalive.audio_content.main.GetAudioContentRankingItem
|
||||||
import kr.co.vividnext.sodalive.audio_content.main.banner.AudioContentMainBannerAdapter
|
import kr.co.vividnext.sodalive.audio_content.main.banner.AudioContentMainBannerAdapter
|
||||||
import kr.co.vividnext.sodalive.audio_content.main.new_content.AudioContentMainNewContentThemeAdapter
|
import kr.co.vividnext.sodalive.audio_content.main.new_content.AudioContentMainNewContentThemeAdapter
|
||||||
import kr.co.vividnext.sodalive.audio_content.main.ranking.AudioContentMainRankingAdapter
|
import kr.co.vividnext.sodalive.audio_content.main.ranking.AudioContentMainRankingAdapter
|
||||||
|
import kr.co.vividnext.sodalive.audio_content.main.v2.AudioContentMainActivity
|
||||||
|
import kr.co.vividnext.sodalive.audio_content.main.v2.AudioContentMainTab
|
||||||
import kr.co.vividnext.sodalive.audio_content.main.v2.ContentRankCreatorAdapter
|
import kr.co.vividnext.sodalive.audio_content.main.v2.ContentRankCreatorAdapter
|
||||||
import kr.co.vividnext.sodalive.audio_content.series.detail.SeriesDetailActivity
|
import kr.co.vividnext.sodalive.audio_content.series.detail.SeriesDetailActivity
|
||||||
import kr.co.vividnext.sodalive.audio_content.upload.AudioContentUploadActivity
|
import kr.co.vividnext.sodalive.audio_content.upload.AudioContentUploadActivity
|
||||||
|
@ -334,6 +335,44 @@ class AudioContentMainTabHomeFragment : BaseFragment<FragmentAudioContentMainTab
|
||||||
binding.rlCategoryAudioToon.setOnClickListener {
|
binding.rlCategoryAudioToon.setOnClickListener {
|
||||||
showToast("준비중 입니다.")
|
showToast("준비중 입니다.")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
binding.rlCategorySeries.setOnClickListener {
|
||||||
|
// startAudioContentMainActivity(AudioContentMainTab.SERIES)
|
||||||
|
requireContext().startActivity(
|
||||||
|
Intent(requireContext(), AudioContentMainActivity::class.java)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
binding.rlCategoryContent.setOnClickListener {
|
||||||
|
startAudioContentMainActivity(AudioContentMainTab.CONTENT)
|
||||||
|
}
|
||||||
|
|
||||||
|
binding.rlCategoryAlarm.setOnClickListener {
|
||||||
|
startAudioContentMainActivity(AudioContentMainTab.ALARM)
|
||||||
|
}
|
||||||
|
|
||||||
|
binding.rlCategoryAsmr.setOnClickListener {
|
||||||
|
startAudioContentMainActivity(AudioContentMainTab.ASMR)
|
||||||
|
}
|
||||||
|
|
||||||
|
binding.rlCategoryReplay.setOnClickListener {
|
||||||
|
startAudioContentMainActivity(AudioContentMainTab.REPLAY)
|
||||||
|
}
|
||||||
|
|
||||||
|
binding.rlCategoryFree.setOnClickListener {
|
||||||
|
startAudioContentMainActivity(AudioContentMainTab.FREE)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun startAudioContentMainActivity(tab: AudioContentMainTab) {
|
||||||
|
startActivity(
|
||||||
|
Intent(requireContext(), AudioContentMainActivity::class.java).apply {
|
||||||
|
putExtra(
|
||||||
|
Constants.EXTRA_START_TAB_POSITION,
|
||||||
|
tab.ordinal
|
||||||
|
)
|
||||||
|
}
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setupRankCreator() {
|
private fun setupRankCreator() {
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
package kr.co.vividnext.sodalive.audio_content.main.v2.replay
|
||||||
|
|
||||||
|
import kr.co.vividnext.sodalive.base.BaseFragment
|
||||||
|
import kr.co.vividnext.sodalive.databinding.FragmentAudioContentMainTabReplayBinding
|
||||||
|
|
||||||
|
class AudioContentMainTabReplayFragment : BaseFragment<FragmentAudioContentMainTabReplayBinding>(
|
||||||
|
FragmentAudioContentMainTabReplayBinding::inflate
|
||||||
|
) {
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
package kr.co.vividnext.sodalive.audio_content.main.v2.series
|
||||||
|
|
||||||
|
import kr.co.vividnext.sodalive.base.BaseFragment
|
||||||
|
import kr.co.vividnext.sodalive.databinding.FragmentAudioContentMainTabSeriesBinding
|
||||||
|
|
||||||
|
class AudioContentMainTabSeriesFragment : BaseFragment<FragmentAudioContentMainTabSeriesBinding>(
|
||||||
|
FragmentAudioContentMainTabSeriesBinding::inflate
|
||||||
|
) {
|
||||||
|
}
|
|
@ -0,0 +1,41 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<include
|
||||||
|
android:id="@+id/toolbar"
|
||||||
|
layout="@layout/toolbar_audio_content_main" />
|
||||||
|
|
||||||
|
<com.google.android.material.tabs.TabLayout
|
||||||
|
android:id="@+id/tabs"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="@android:color/transparent"
|
||||||
|
android:clipToPadding="false"
|
||||||
|
android:elevation="0dp"
|
||||||
|
android:paddingHorizontal="13.3dp"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/toolbar"
|
||||||
|
app:tabGravity="start"
|
||||||
|
app:tabIndicatorFullWidth="false"
|
||||||
|
app:tabIndicatorHeight="0dp"
|
||||||
|
app:tabMinWidth="45dp"
|
||||||
|
app:tabMode="scrollable"
|
||||||
|
app:tabPaddingBottom="15dp"
|
||||||
|
app:tabPaddingTop="15dp"
|
||||||
|
app:tabSelectedTextColor="@color/color_3bb9f1"
|
||||||
|
app:tabTextAppearance="@style/ContentMainTabText"
|
||||||
|
app:tabTextColor="@color/color_bbbbbb" />
|
||||||
|
|
||||||
|
<FrameLayout
|
||||||
|
android:id="@+id/fl_container"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="0dp"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/tabs" />
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
@ -0,0 +1,25 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<com.zhpan.bannerview.BannerViewPager
|
||||||
|
android:id="@+id/rv_banner"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginHorizontal="13.3dp"
|
||||||
|
android:layout_marginTop="30dp" />
|
||||||
|
|
||||||
|
<com.zhpan.indicator.IndicatorView
|
||||||
|
android:id="@+id/indicator_banner"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:layout_marginTop="6.7dp" />
|
||||||
|
</LinearLayout>
|
||||||
|
</androidx.core.widget.NestedScrollView>
|
|
@ -0,0 +1,25 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<com.zhpan.bannerview.BannerViewPager
|
||||||
|
android:id="@+id/rv_banner"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginHorizontal="13.3dp"
|
||||||
|
android:layout_marginTop="30dp" />
|
||||||
|
|
||||||
|
<com.zhpan.indicator.IndicatorView
|
||||||
|
android:id="@+id/indicator_banner"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:layout_marginTop="6.7dp" />
|
||||||
|
</LinearLayout>
|
||||||
|
</androidx.core.widget.NestedScrollView>
|
|
@ -0,0 +1,25 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<com.zhpan.bannerview.BannerViewPager
|
||||||
|
android:id="@+id/rv_banner"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginHorizontal="13.3dp"
|
||||||
|
android:layout_marginTop="30dp" />
|
||||||
|
|
||||||
|
<com.zhpan.indicator.IndicatorView
|
||||||
|
android:id="@+id/indicator_banner"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:layout_marginTop="6.7dp" />
|
||||||
|
</LinearLayout>
|
||||||
|
</androidx.core.widget.NestedScrollView>
|
|
@ -0,0 +1,25 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<com.zhpan.bannerview.BannerViewPager
|
||||||
|
android:id="@+id/rv_banner"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginHorizontal="13.3dp"
|
||||||
|
android:layout_marginTop="30dp" />
|
||||||
|
|
||||||
|
<com.zhpan.indicator.IndicatorView
|
||||||
|
android:id="@+id/indicator_banner"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:layout_marginTop="6.7dp" />
|
||||||
|
</LinearLayout>
|
||||||
|
</androidx.core.widget.NestedScrollView>
|
|
@ -0,0 +1,25 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<com.zhpan.bannerview.BannerViewPager
|
||||||
|
android:id="@+id/rv_banner"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginHorizontal="13.3dp"
|
||||||
|
android:layout_marginTop="30dp" />
|
||||||
|
|
||||||
|
<com.zhpan.indicator.IndicatorView
|
||||||
|
android:id="@+id/indicator_banner"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:layout_marginTop="6.7dp" />
|
||||||
|
</LinearLayout>
|
||||||
|
</androidx.core.widget.NestedScrollView>
|
|
@ -0,0 +1,25 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<com.zhpan.bannerview.BannerViewPager
|
||||||
|
android:id="@+id/rv_banner"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginHorizontal="13.3dp"
|
||||||
|
android:layout_marginTop="30dp" />
|
||||||
|
|
||||||
|
<com.zhpan.indicator.IndicatorView
|
||||||
|
android:id="@+id/indicator_banner"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:layout_marginTop="6.7dp" />
|
||||||
|
</LinearLayout>
|
||||||
|
</androidx.core.widget.NestedScrollView>
|
|
@ -0,0 +1,36 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:paddingHorizontal="13.3dp"
|
||||||
|
android:paddingTop="13.3dp">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_title"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentStart="true"
|
||||||
|
android:layout_toStartOf="@+id/iv_alarm"
|
||||||
|
android:fontFamily="@font/gmarket_sans_bold"
|
||||||
|
android:text="콘텐츠 마켓"
|
||||||
|
android:textColor="@color/color_3bb9f1"
|
||||||
|
android:textSize="21.3sp" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/iv_alarm"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginEnd="16dp"
|
||||||
|
android:layout_toStartOf="@+id/iv_content_keep"
|
||||||
|
android:contentDescription="@null"
|
||||||
|
android:src="@drawable/ic_alarm_clock" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/iv_content_keep"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:contentDescription="@null"
|
||||||
|
android:src="@drawable/ic_content_keep" />
|
||||||
|
</RelativeLayout>
|
|
@ -27,6 +27,11 @@
|
||||||
<item name="android:fontFamily">@font/gmarket_sans_medium</item>
|
<item name="android:fontFamily">@font/gmarket_sans_medium</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<style name="ContentMainTabText" parent="@android:style/TextAppearance.Widget.TabWidget">
|
||||||
|
<item name="android:fontFamily">@font/gmarket_sans_medium</item>
|
||||||
|
<item name="android:textSize">16sp</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
<style name="playlistTabText" parent="@android:style/TextAppearance.Widget.TabWidget">
|
<style name="playlistTabText" parent="@android:style/TextAppearance.Widget.TabWidget">
|
||||||
<item name="android:fontFamily">@font/gmarket_sans_medium</item>
|
<item name="android:fontFamily">@font/gmarket_sans_medium</item>
|
||||||
<item name="android:textSize">14.7sp</item>
|
<item name="android:textSize">14.7sp</item>
|
||||||
|
|
Loading…
Reference in New Issue