From f80c23c90a91bd221683ac71ecb8cd70af20744d Mon Sep 17 00:00:00 2001 From: muqing <1966944300@qq.com> Date: Fri, 17 Jan 2025 21:03:14 +0800 Subject: [PATCH] =?UTF-8?q?refactor(community):=20=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E7=A4=BE=E5=8C=BA=E7=95=8C=E9=9D=A2=E5=B8=83=E5=B1=80=E5=92=8C?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除了底部导航栏 - 优化了推荐页面布局,添加了轮播图和下拉刷新功能- 调整了排名页面布局 - 修复了一些代码注释和未使用变量 --- app/build.gradle | 8 +- .../coldmint/rust/pro/WebModInfoActivity.kt | 121 ++++++--- .../pro/adapters/ModPageDetailsAdapter.kt | 66 +++-- .../rust/pro/fragments/CommunityFragment.kt | 52 +--- .../rust/pro/fragments/ModCommentsFragment.kt | 1 + .../rust/pro/fragments/RankingFragment.kt | 1 - .../rust/pro/fragments/RecommendedFragment.kt | 60 +++-- .../java/com/coldmint/rust/pro/tool/Tools.kt | 19 ++ .../res/layout-land/activity_web_mod_info.xml | 71 ++++++ .../res/layout-land/fragment_community.xml | 7 - .../main/res/layout/activity_web_mod_info.xml | 3 +- .../main/res/layout/fragment_insert_coins.xml | 33 +-- .../main/res/layout/fragment_mod_comments.xml | 32 ++- app/src/main/res/layout/fragment_ranking.xml | 3 +- .../main/res/layout/fragment_recommended.xml | 236 +++++++++--------- 15 files changed, 421 insertions(+), 292 deletions(-) create mode 100644 app/src/main/java/com/coldmint/rust/pro/tool/Tools.kt create mode 100644 app/src/main/res/layout-land/activity_web_mod_info.xml diff --git a/app/build.gradle b/app/build.gradle index 674a292..cab3e25 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -32,7 +32,7 @@ android { minSdkVersion 23 targetSdkVersion 33 versionCode 28 - versionName "2.1.1 Test(2024-7-20)" + versionName "2.3.0 Test(2025-One)"//第一季度 One 第二季度 Two 第三季度 Three 第四季度 Four testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } @@ -180,8 +180,8 @@ dependencies { implementation 'com.google.android.flexbox:flexbox:3.0.0' // Android智能下拉刷新框架-SmartRefreshLayout - implementation 'io.github.scwang90:refresh-layout-kernel:2.1.0' //核心必须依赖 - implementation 'io.github.scwang90:refresh-header-classics:2.1.0' //经典刷新头 - implementation 'io.github.scwang90:refresh-footer-classics:2.1.0' //经典加载 + implementation 'io.github.scwang90:refresh-layout-kernel:2.1.0' //核心必须依赖 + implementation 'io.github.scwang90:refresh-header-classics:2.1.0' //经典刷新头 + implementation 'io.github.scwang90:refresh-footer-classics:2.1.0' //经典加载 } \ No newline at end of file diff --git a/app/src/main/java/com/coldmint/rust/pro/WebModInfoActivity.kt b/app/src/main/java/com/coldmint/rust/pro/WebModInfoActivity.kt index 53f6610..b15d91b 100644 --- a/app/src/main/java/com/coldmint/rust/pro/WebModInfoActivity.kt +++ b/app/src/main/java/com/coldmint/rust/pro/WebModInfoActivity.kt @@ -1,9 +1,11 @@ package com.coldmint.rust.pro +import android.annotation.SuppressLint import android.content.Intent import android.os.Bundle import android.os.Environment import android.view.* +import androidx.lifecycle.MutableLiveData import com.coldmint.dialog.CoreDialog import com.coldmint.rust.core.dataBean.AppUpdateData import com.coldmint.rust.core.tool.AppOperator @@ -15,8 +17,10 @@ import com.coldmint.rust.pro.adapters.ModPageDetailsAdapter import com.coldmint.rust.pro.base.BaseActivity import com.coldmint.rust.pro.databinding.ActivityWebModInfoBinding import com.coldmint.rust.pro.databinding.LoadFileLayoutBinding +import com.coldmint.rust.pro.fragments.WebModDetailsFragment import com.coldmint.rust.pro.tool.AppSettings import com.coldmint.rust.pro.tool.GlobalMethod +import com.coldmint.rust.pro.tool.Tools import com.google.android.material.snackbar.Snackbar import com.google.android.material.tabs.TabLayoutMediator import com.google.gson.Gson @@ -29,8 +33,8 @@ class WebModInfoActivity : BaseActivity() { lateinit var tip: String val targetFile: File by lazy { val modFolderPath = AppSettings.getValue( - AppSettings.Setting.ModFolder, - Environment.getExternalStorageDirectory().absolutePath + "/rustedWarfare/units/" + AppSettings.Setting.ModFolder, + Environment.getExternalStorageDirectory().absolutePath + "/rustedWarfare/units/" ) val modFolder = File(modFolderPath) if (!modFolder.exists()) { @@ -44,6 +48,10 @@ class WebModInfoActivity : BaseActivity() { } lateinit var adapter: ModPageDetailsAdapter + val modName: MutableLiveData by lazy { + MutableLiveData() + } + @SuppressLint("CommitTransaction") private fun initView() { setReturnButton() val activityIntent = intent @@ -64,27 +72,52 @@ class WebModInfoActivity : BaseActivity() { viewBinding.button.isEnabled = false viewBinding.button.text = getString(R.string.installated) } - adapter = ModPageDetailsAdapter(this, modId) - adapter.modName.observe(this) { + modName.observe(this) { title = it } + val webModDetailsFragment = WebModDetailsFragment(modId, modName) +// 检测是否处于平板模式 + if (Tools.isTabletMode(this)) { + adapter = ModPageDetailsAdapter(this, modId) + supportFragmentManager.beginTransaction() + .replace(R.id.fragment,webModDetailsFragment) + .commit() viewBinding.viewPager2.adapter = adapter - TabLayoutMediator(viewBinding.tabLayout, viewBinding.viewPager2) { tab, i -> - tab.text = when (i) { - 0 -> { - getString(R.string.details) + TabLayoutMediator(viewBinding.tabLayout, viewBinding.viewPager2) { tab, i -> + tab.text = when (i) { + 0 -> { + getString(R.string.insert_coins) + } + 1 -> { + getString(R.string.discussion) + }else -> { + getString(R.string.title) + } } - 1 -> { - getString(R.string.insert_coins) + }.attach() + } else { + adapter = ModPageDetailsAdapter(this, modId, webModDetailsFragment) + viewBinding.viewPager2.adapter = adapter + TabLayoutMediator(viewBinding.tabLayout, viewBinding.viewPager2) { tab, i -> + tab.text = when (i) { + 0 -> { + getString(R.string.details) + } + + 1 -> { + getString(R.string.insert_coins) + } + + 2 -> { + getString(R.string.discussion) + } + + else -> { + getString(R.string.title) + } } - 2 -> { - getString(R.string.discussion) - } - else -> { - getString(R.string.title) - } - } - }.attach() + }.attach() + } viewBinding.button.setOnClickListener { val type = viewBinding.button.text val installation = getString(R.string.installation) @@ -111,25 +144,27 @@ class WebModInfoActivity : BaseActivity() { when (AppOperator.getNetworkType(this)) { AppOperator.NetWorkType.NetWorkType_Moble -> { val useMobileNetWork = - AppSettings.getValue(AppSettings.Setting.UseMobileNetwork, false) + AppSettings.getValue(AppSettings.Setting.UseMobileNetwork, false) if (useMobileNetWork) { downloadWork(fileLink) } else { CoreDialog(this).setTitle(R.string.using_mobile_networks) - .setMessage(R.string.using_mobile_networks_msg) - .setPositiveButton(R.string.only_one) { - downloadWork(fileLink) - }.setNegativeButton(R.string.always_allow) { - AppSettings.setValue(AppSettings.Setting.UseMobileNetwork, true) - downloadWork(fileLink) - }.setNeutralButton(R.string.dialog_cancel) { + .setMessage(R.string.using_mobile_networks_msg) + .setPositiveButton(R.string.only_one) { + downloadWork(fileLink) + }.setNegativeButton(R.string.always_allow) { + AppSettings.setValue(AppSettings.Setting.UseMobileNetwork, true) + downloadWork(fileLink) + }.setNeutralButton(R.string.dialog_cancel) { - }.show() + }.show() } } + AppOperator.NetWorkType.NetWorkType_Wifi -> { downloadWork(fileLink) } + else -> {} } @@ -143,14 +178,15 @@ class WebModInfoActivity : BaseActivity() { } + @SuppressLint("StringFormatInvalid") override fun onOptionsItemSelected(item: MenuItem): Boolean { when (item.itemId) { R.id.report_item -> { if (token.isBlank()) { Snackbar.make( - viewBinding.button, - R.string.please_login_first, - Snackbar.LENGTH_SHORT + viewBinding.button, + R.string.please_login_first, + Snackbar.LENGTH_SHORT ).show() return true } @@ -165,29 +201,32 @@ class WebModInfoActivity : BaseActivity() { } else { //不能举报未公开的模组 Snackbar.make( - viewBinding.button, - R.string.unable_to_report, - Snackbar.LENGTH_SHORT + viewBinding.button, + R.string.unable_to_report, + Snackbar.LENGTH_SHORT ).show() } } + R.id.share_item -> { val link = AppSettings.getValue(AppSettings.Setting.ServerAddress, "") val updateData = AppSettings.getValue(AppSettings.Setting.UpdateData, "") var appUpdateLink = "" - if (!updateData.isNullOrBlank()) { + if (updateData.isNotBlank()) { val gson = Gson() val updateDataObj = gson.fromJson(updateData, AppUpdateData.Data::class.java) appUpdateLink = updateDataObj.link } + val s = String.format( - getString(R.string.share_mod_msg), - title, - link + "website/pages/modPage.php?&modId=" + modId, appUpdateLink + getString(R.string.share_mod_msg), + title, + link + "website/pages/modPage.php?&modId=" + modId, appUpdateLink ) AppOperator.shareText(this, getString(R.string.share_mod), s) } + R.id.update_record -> { GlobalMethod.showUpdateLog(this, modId) } @@ -215,7 +254,7 @@ class WebModInfoActivity : BaseActivity() { val numberFormat = NumberFormat.getNumberInstance() numberFormat.maximumFractionDigits = 2 val trueProgress = - numberFormat.format(bytesRead.toDouble() / contentLength.toDouble() * 100) + numberFormat.format(bytesRead.toDouble() / contentLength.toDouble() * 100) progress = trueProgress.toFloat().toInt() runOnUiThread { val progressTip = String.format(tip, progress) @@ -319,12 +358,12 @@ class WebModInfoActivity : BaseActivity() { */ fun gotoUserPage(userId: String) { val intent = Intent( - this@WebModInfoActivity, - UserHomePageActivity::class.java + this@WebModInfoActivity, + UserHomePageActivity::class.java ) intent.putExtra("userId", userId) startActivity( - intent + intent ) } diff --git a/app/src/main/java/com/coldmint/rust/pro/adapters/ModPageDetailsAdapter.kt b/app/src/main/java/com/coldmint/rust/pro/adapters/ModPageDetailsAdapter.kt index c378f72..ab21368 100644 --- a/app/src/main/java/com/coldmint/rust/pro/adapters/ModPageDetailsAdapter.kt +++ b/app/src/main/java/com/coldmint/rust/pro/adapters/ModPageDetailsAdapter.kt @@ -15,19 +15,18 @@ import com.coldmint.rust.pro.fragments.WebModDetailsFragment * 模组详情页面适配器 * @constructor */ -class ModPageDetailsAdapter(fragmentActivity: FragmentActivity, val modId: String) : - FragmentStateAdapter(fragmentActivity) { +class ModPageDetailsAdapter(fragmentActivity: FragmentActivity, val modId: String, var A: WebModDetailsFragment? = null) : + FragmentStateAdapter(fragmentActivity) { private lateinit var webModDetailsFragment: WebModDetailsFragment private lateinit var modCommentsFragment: ModCommentsFragment override fun getItemCount(): Int { - return 3 - } + if (A == null) { + return 2 + } else + return 3 - val modName: MutableLiveData by lazy { - MutableLiveData() } - /** * 获取下载链接 * @return String? @@ -55,25 +54,48 @@ class ModPageDetailsAdapter(fragmentActivity: FragmentActivity, val modId: Strin } override fun createFragment(position: Int): Fragment { - return when (position) { - 0 -> { - if (!this::webModDetailsFragment.isInitialized) { - webModDetailsFragment = WebModDetailsFragment(modId, modName) + if (A == null) { + return when (position) { + 0 -> { + InsertCoinsFragment(modId) } - webModDetailsFragment - } - 1 -> { - InsertCoinsFragment(modId) - } - 2 -> { - if (!this::modCommentsFragment.isInitialized) { - modCommentsFragment = ModCommentsFragment(modId) + + 1 -> { + if (!this::modCommentsFragment.isInitialized) { + modCommentsFragment = ModCommentsFragment(modId) + } + modCommentsFragment + }else -> { + NullFragment() } - modCommentsFragment } - else -> { - NullFragment() + + } else { + return when (position) { + 0 -> { + if (!this::webModDetailsFragment.isInitialized) { + webModDetailsFragment = A as WebModDetailsFragment + } + webModDetailsFragment + } + + 1 -> { + InsertCoinsFragment(modId) + } + + 2 -> { + if (!this::modCommentsFragment.isInitialized) { + modCommentsFragment = ModCommentsFragment(modId) + } + modCommentsFragment + }else -> { + NullFragment() + } } } +// +// else -> { +// NullFragment() +// } } } \ No newline at end of file diff --git a/app/src/main/java/com/coldmint/rust/pro/fragments/CommunityFragment.kt b/app/src/main/java/com/coldmint/rust/pro/fragments/CommunityFragment.kt index 943a4e9..430dc59 100644 --- a/app/src/main/java/com/coldmint/rust/pro/fragments/CommunityFragment.kt +++ b/app/src/main/java/com/coldmint/rust/pro/fragments/CommunityFragment.kt @@ -8,7 +8,9 @@ import androidx.fragment.app.Fragment import androidx.viewpager2.widget.ViewPager2 import com.coldmint.rust.pro.R import com.coldmint.rust.pro.adapters.CommunityAdapter +import com.coldmint.rust.pro.tool.Tools import com.google.android.material.navigation.NavigationBarView +import com.google.android.material.navigationrail.NavigationRailView class CommunityFragment : Fragment() { @@ -19,9 +21,6 @@ class CommunityFragment : Fragment() { if (!isAdded) { return } - /* else { - viewBinding.pager.postDelayed({ loadTab() }, MainActivity.linkInterval) - }*/ } override fun onCreateView( @@ -29,7 +28,6 @@ class CommunityFragment : Fragment() { savedInstanceState: Bundle? ): View? { val inflate = inflater.inflate(R.layout.fragment_community, container, false) - onViewCreated(inflate) return inflate @@ -38,6 +36,10 @@ class CommunityFragment : Fragment() { private fun onViewCreated(view: View) { val navigationBarView : NavigationBarView = view.findViewById(R.id.bottomnavigationView) val pager : ViewPager2 = view.findViewById(R.id.pager) + if (Tools.isTabletMode(requireContext())) { +// var navigation = navigationBarView as NavigationRailView +// navigation.setonc + } pager.adapter = CommunityAdapter(this) pager.isSaveEnabled = false pager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { @@ -76,46 +78,4 @@ class CommunityFragment : Fragment() { true } } -// override fun whenViewCreated(inflater: LayoutInflater, savedInstanceState: Bundle?) { -// viewBinding.pager.adapter = CommunityAdapter(this) -// viewBinding.pager.isSaveEnabled = false -// viewBinding.pager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { -// override fun onPageSelected(position: Int) { -// when (position) { -// 0 -> { -// viewBinding.bottomnavigationView.selectedItemId = R.id.action_recommended -// } -// 1 -> { -// viewBinding.bottomnavigationView.selectedItemId = R.id.action_follow -// } -// 2 -> { -// viewBinding.bottomnavigationView.selectedItemId = R.id.action_ranking -// } -// 3 -> { -// viewBinding.bottomnavigationView.selectedItemId = R.id.action_my -// } -// } -// } -// }) -// viewBinding.bottomnavigationView.setOnItemSelectedListener { -// when (it.itemId) { -// R.id.action_recommended -> { -// viewBinding.pager.currentItem = 0 -// } -// R.id.action_follow -> { -// viewBinding.pager.currentItem = 1 -// } -// R.id.action_ranking -> { -// viewBinding.pager.currentItem = 2 -// } -// R.id.action_my -> { -// viewBinding.pager.currentItem = 3 -// } -// } -// true -// } -// -// -// loadTab() -// } } \ No newline at end of file diff --git a/app/src/main/java/com/coldmint/rust/pro/fragments/ModCommentsFragment.kt b/app/src/main/java/com/coldmint/rust/pro/fragments/ModCommentsFragment.kt index 58cf965..43cfd2b 100644 --- a/app/src/main/java/com/coldmint/rust/pro/fragments/ModCommentsFragment.kt +++ b/app/src/main/java/com/coldmint/rust/pro/fragments/ModCommentsFragment.kt @@ -42,6 +42,7 @@ class ModCommentsFragment(val modId: String) : BaseFragment() { private fun loadMods() { viewBinding.progressBar.isVisible = true viewBinding.textview.isVisible = false -// viewBinding.swipeRefreshLayout.isVisible = false WebMod.instance.list(object : ApiCallBack { override fun onResponse(t: WebModListData) { if (!isAdded) { diff --git a/app/src/main/java/com/coldmint/rust/pro/fragments/RecommendedFragment.kt b/app/src/main/java/com/coldmint/rust/pro/fragments/RecommendedFragment.kt index aade47b..283dd11 100644 --- a/app/src/main/java/com/coldmint/rust/pro/fragments/RecommendedFragment.kt +++ b/app/src/main/java/com/coldmint/rust/pro/fragments/RecommendedFragment.kt @@ -3,8 +3,6 @@ package com.coldmint.rust.pro.fragments import android.content.Intent import android.os.Bundle import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup import androidx.core.view.isVisible import com.bumptech.glide.Glide import com.coldmint.dialog.CoreDialog @@ -28,6 +26,7 @@ import com.youth.banner.adapter.BannerImageAdapter import com.youth.banner.holder.BannerImageHolder import com.youth.banner.indicator.CircleIndicator + class RecommendedFragment : BaseFragment() { /** @@ -67,32 +66,34 @@ class RecommendedFragment : BaseFragment() { /** * 加载随机推荐 */ - fun loadRandomRecommended() { + private fun loadRandomRecommended() { viewBinding.randomRecommendedProgressIndicator.isVisible = true WebMod.instance.randomRecommended(6, object : ApiCallBack { override fun onResponse(t: WebModListData) { val data = t.data?.toMutableList() - if (data == null || data.isEmpty()) { + if (data.isNullOrEmpty()) { viewBinding.randomRecommendedProgressIndicator.isVisible = false + viewBinding.swipeRefreshLayout.isRefreshing = false } else { viewBinding.randomRecommendedProgressIndicator.isVisible = false viewBinding.randomRecommendedView.isVisible = true viewBinding.randomRecommendedView.adapter = createAdapter(data) + viewBinding.swipeRefreshLayout.isRefreshing = false } } override fun onFailure(e: Exception) { e.printStackTrace() viewBinding.randomRecommendedProgressIndicator.isVisible = false + viewBinding.swipeRefreshLayout.isRefreshing = false } - }) } /** * 加载个性化推荐 */ - fun loadSoleRecommended() { + private fun loadSoleRecommended() { viewBinding.soleRecommendedCardView.isVisible = false viewBinding.soleRecommendedProgressIndicator.isVisible = true val account = AppSettings.getValue(AppSettings.Setting.Account, "") @@ -123,17 +124,17 @@ class RecommendedFragment : BaseFragment() { /** * 加载轮播图数据 */ - fun loadBannerData() { + private fun loadBannerData() { BannerManager.instance.getItems(object : ApiCallBack { override fun onResponse(t: BannerItemDataBean) { if (t.code == ServerConfiguration.Success_Code) { val dataList = t.data - if (dataList != null && dataList.isNotEmpty()) { + if (!dataList.isNullOrEmpty()) { val forever = - AppSettings.getValue( - AppSettings.Setting.ExpirationTime, - 0.toLong() - ) == (-2).toLong() + AppSettings.getValue( + AppSettings.Setting.ExpirationTime, + 0.toLong() + ) == (-2).toLong() val textStyleMaker = TextStyleMaker.instance val showList = dataList.filter { var show = true @@ -145,31 +146,31 @@ class RecommendedFragment : BaseFragment() { show } viewBinding.banner.setAdapter(object : - BannerImageAdapter(showList) { + BannerImageAdapter(showList) { override fun onBindView( - holder: BannerImageHolder?, - data: BannerItemDataBean.Data?, - position: Int, - size: Int + holder: BannerImageHolder?, + data: BannerItemDataBean.Data?, + position: Int, + size: Int ) { if (holder != null && data != null) { Glide.with(holder.itemView).load(data.picture) - .apply(GlobalMethod.getRequestOptions()) - .into(holder.imageView) + .apply(GlobalMethod.getRequestOptions()) + .into(holder.imageView) holder.imageView.setOnClickListener { val type = textStyleMaker.getType(data.link) val linkData = textStyleMaker.getData(data.link) if (type == null || linkData == null) { CoreDialog(requireContext()).setTitle(data.title) - .setMessage(data.link) - .setPositiveButton(R.string.dialog_ok) { + .setMessage(data.link) + .setPositiveButton(R.string.dialog_ok) { - }.setCancelable(false).show() + }.setCancelable(false).show() } else { textStyleMaker.clickEvent( - requireContext(), - type, - linkData + requireContext(), + type, + linkData ) } } @@ -231,11 +232,16 @@ class RecommendedFragment : BaseFragment() { override fun whenViewCreated(inflater: LayoutInflater, savedInstanceState: Bundle?) { viewBinding.latestReleaseView.layoutManager = ScrollLinearLayoutManager(requireContext()) viewBinding.soleRecommendedRecyclerView.layoutManager = - ScrollLinearLayoutManager(requireContext()) + ScrollLinearLayoutManager(requireContext()) viewBinding.randomRecommendedView.layoutManager = ScrollLinearLayoutManager(requireContext()) loadRandomRecommended() - viewBinding.changeRandomRecommended.setOnClickListener { +// 下拉刷新随机推荐的模组 + viewBinding.swipeRefreshLayout.setOnRefreshListener { loadRandomRecommended() } +// 动态设置Banner高度 + viewBinding.bannerCardView.layoutParams.height = (resources.displayMetrics.heightPixels / 2.5).toInt() + viewBinding.bannerCardView.requestLayout() + } } \ No newline at end of file diff --git a/app/src/main/java/com/coldmint/rust/pro/tool/Tools.kt b/app/src/main/java/com/coldmint/rust/pro/tool/Tools.kt new file mode 100644 index 0000000..20ca83a --- /dev/null +++ b/app/src/main/java/com/coldmint/rust/pro/tool/Tools.kt @@ -0,0 +1,19 @@ +package com.coldmint.rust.pro.tool + +import android.app.UiModeManager +import android.content.Context +import android.content.res.Configuration +import androidx.core.content.ContextCompat.getSystemService + + +class Tools { + + companion object { + /** + * 判断是否为平板 + */ + fun isTabletMode(context: Context): Boolean { + return context.resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE + } + } +} \ No newline at end of file diff --git a/app/src/main/res/layout-land/activity_web_mod_info.xml b/app/src/main/res/layout-land/activity_web_mod_info.xml new file mode 100644 index 0000000..cc1d40d --- /dev/null +++ b/app/src/main/res/layout-land/activity_web_mod_info.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout-land/fragment_community.xml b/app/src/main/res/layout-land/fragment_community.xml index dd38040..106fcfe 100644 --- a/app/src/main/res/layout-land/fragment_community.xml +++ b/app/src/main/res/layout-land/fragment_community.xml @@ -15,11 +15,4 @@ android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" /> - - - - - - - diff --git a/app/src/main/res/layout/activity_web_mod_info.xml b/app/src/main/res/layout/activity_web_mod_info.xml index 0b6d0f1..99892ad 100644 --- a/app/src/main/res/layout/activity_web_mod_info.xml +++ b/app/src/main/res/layout/activity_web_mod_info.xml @@ -4,7 +4,6 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - android:fitsSystemWindows="true" tools:context=".WebModInfoActivity"> - + android:visibility="gone" /> - + android:layout_height="wrap_content"> + + + + + android:layout_height="wrap_content" + android:text="@string/no_content" /> - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_mod_comments.xml b/app/src/main/res/layout/fragment_mod_comments.xml index 1576373..a3fb573 100644 --- a/app/src/main/res/layout/fragment_mod_comments.xml +++ b/app/src/main/res/layout/fragment_mod_comments.xml @@ -1,16 +1,16 @@ - + + android:layout_marginTop="8dp" + android:indeterminate="true" + android:visibility="invisible" /> - - + android:layout_height="wrap_content"> + + + - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_ranking.xml b/app/src/main/res/layout/fragment_ranking.xml index 2b5c005..b1f021f 100644 --- a/app/src/main/res/layout/fragment_ranking.xml +++ b/app/src/main/res/layout/fragment_ranking.xml @@ -87,8 +87,7 @@ android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="match_parent" - android:overScrollMode="never" - android:background="#fff" /> + android:overScrollMode="ifContentScrolls" /> diff --git a/app/src/main/res/layout/fragment_recommended.xml b/app/src/main/res/layout/fragment_recommended.xml index 072bf8e..2880c62 100644 --- a/app/src/main/res/layout/fragment_recommended.xml +++ b/app/src/main/res/layout/fragment_recommended.xml @@ -1,12 +1,13 @@ + - - + + - - - - - - + android:visibility="visible"> + android:fillViewport="true" + android:orientation="vertical"> + + + + + + + android:layout_height="match_parent" + android:layout_marginTop="16dp" + android:orientation="vertical" + android:padding="8dp"> - + android:gravity="center_vertical"> -