diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index e30baae7ba..db95b44278 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -404,6 +404,9 @@
android:name = "com.gh.gamecenter.tag.TagsActivity"
android:screenOrientation = "portrait" />
+
+
" + mEntrance);
}
@Override
diff --git a/app/src/main/java/com/gh/base/fragment/BaseFragment.java b/app/src/main/java/com/gh/base/fragment/BaseFragment.java
index 3cb00dc6d1..78a022995f 100644
--- a/app/src/main/java/com/gh/base/fragment/BaseFragment.java
+++ b/app/src/main/java/com/gh/base/fragment/BaseFragment.java
@@ -1,19 +1,20 @@
package com.gh.base.fragment;
-import androidx.lifecycle.Lifecycle;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
+import android.text.TextUtils;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
import androidx.annotation.LayoutRes;
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentTransaction;
-import android.text.TextUtils;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
+import androidx.lifecycle.Lifecycle;
import com.gh.base.OnListClickListener;
import com.gh.base.OnRequestCallBackListener;
@@ -236,4 +237,10 @@ public abstract class BaseFragment extends Fragment implements OnRequestCallB
}
}
+ // 为 fragment 附加 bundle (setArgument())
+ public BaseFragment with(Bundle bundle) {
+ this.setArguments(bundle);
+ return this;
+ }
+
}
diff --git a/app/src/main/java/com/gh/common/util/DirectUtils.kt b/app/src/main/java/com/gh/common/util/DirectUtils.kt
index 7492d31084..cf84cee47a 100644
--- a/app/src/main/java/com/gh/common/util/DirectUtils.kt
+++ b/app/src/main/java/com/gh/common/util/DirectUtils.kt
@@ -18,6 +18,7 @@ import com.gh.gamecenter.eventbus.EBSkip
import com.gh.gamecenter.manager.UserManager
import com.gh.gamecenter.qa.AskFragment
import com.gh.gamecenter.qa.answer.detail.AnswerDetailActivity
+import com.gh.gamecenter.qa.article.SimpleArticleListActivity
import com.gh.gamecenter.qa.article.detail.ArticleDetailActivity
import com.gh.gamecenter.qa.column.detail.AskColumnDetailActivity
import com.gh.gamecenter.qa.questions.detail.QuestionsDetailActivity
@@ -101,6 +102,14 @@ object DirectUtils {
"tag" -> context.startActivity(TagsActivity.getIntent(context, linkEntity.text!!))
+ "all_community_article" -> {
+ context.startActivity(SimpleArticleListActivity.getIntent(
+ context,
+ linkEntity.link ?: "",
+ entrance,
+ path))
+ }
+
else -> DialogUtils.showLowVersionDialog(context)
}
}
diff --git a/app/src/main/java/com/gh/gamecenter/history/HistoryWrapperFragment.kt b/app/src/main/java/com/gh/gamecenter/history/HistoryWrapperFragment.kt
index 5258aee773..6a5474b6ba 100644
--- a/app/src/main/java/com/gh/gamecenter/history/HistoryWrapperFragment.kt
+++ b/app/src/main/java/com/gh/gamecenter/history/HistoryWrapperFragment.kt
@@ -18,13 +18,10 @@ class HistoryWrapperFragment : BaseFragment_TabLayout() {
}
override fun initFragmentList(fragments: MutableList) {
- fragments.add(AnswerFragment.getInstance(AnswerFragment.Type.HISTORY))
- fragments.add(CommunityArticleFragment.getInstance(CommunityArticleFragment.Type.HISTORY))
- fragments.add(ArticleFragment.getInstance(ArticleFragment.Type.HISTORY))
- fragments.add(HistoryGameListFragment())
- for (fragment in mFragmentsList) {
- fragment.arguments = arguments
- }
+ fragments.add(AnswerFragment.getInstance(AnswerFragment.Type.HISTORY).with(arguments))
+ fragments.add(CommunityArticleFragment.getInstance(CommunityArticleFragment.Type.HISTORY).with(arguments))
+ fragments.add(ArticleFragment.getInstance(ArticleFragment.Type.HISTORY).with(arguments))
+ fragments.add(HistoryGameListFragment().with(arguments))
}
override fun onCreate(savedInstanceState: Bundle?) {
diff --git a/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.java b/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.java
index c7effc63f8..57b0d788fe 100644
--- a/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.java
+++ b/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.java
@@ -223,8 +223,7 @@ public class PersonalFragment extends BaseFragment implements Observer {
if (mUserInfoEntity != null) {
- DataUtils.onEvent(getActivity(), "我的光环", "签到");
+ MtaHelper.onEvent("我的光环", "签到");
sign();
} else {
- DataUtils.onEvent(getActivity(), "我的光环", "微信登录");
+ MtaHelper.onEvent("我的光环", "微信登录");
GetLoginDataUtils.getInstance(getContext()).WCLogin(this);
}
});
@@ -302,19 +301,19 @@ public class PersonalFragment extends BaseFragment implements Observer startActivity(MyAskActivity.getIntent(getContext())));
break;
case R.id.personal_home:
diff --git a/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailFragment.kt
index b3ca3be770..3b6748ef4a 100644
--- a/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailFragment.kt
+++ b/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailFragment.kt
@@ -243,7 +243,7 @@ class AnswerDetailFragment : NormalFragment() {
if (e != null && e.code() == 404 && e.response().errorBody()!!.string().isNotEmpty()) {
HistoryHelper.deleteAnswerEntity(mAnswerId)
- mBinding.bottomController?.containerControl?.visibility = View.GONE
+ mBinding.bottomController.containerControl.visibility = View.GONE
mNoDataTv.setText(R.string.content_delete_hint)
mNoData.visibility = View.VISIBLE
mNoConn.visibility = View.GONE
diff --git a/app/src/main/java/com/gh/gamecenter/qa/article/MyArticleFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/article/MyArticleFragment.kt
index 904319b1c0..658189ff00 100644
--- a/app/src/main/java/com/gh/gamecenter/qa/article/MyArticleFragment.kt
+++ b/app/src/main/java/com/gh/gamecenter/qa/article/MyArticleFragment.kt
@@ -1,10 +1,10 @@
package com.gh.gamecenter.qa.article
import android.app.Activity
-import androidx.lifecycle.ViewModelProviders
import android.content.Intent
import android.os.Bundle
import android.view.MenuItem
+import androidx.lifecycle.ViewModelProviders
import com.gh.common.util.EntranceUtils
import com.gh.common.util.ifLogin
import com.gh.gamecenter.R
@@ -19,9 +19,9 @@ import com.halo.assistant.HaloApp
import io.reactivex.Observable
class MyArticleFragment : ListFragment>() {
- private var mAdapter: MyArticleAdapter? = null
private var mTargetUserId = ""
+ private var mAdapter: MyArticleAdapter? = null
override fun provideListAdapter(): MyArticleAdapter {
if (mAdapter == null) {
@@ -56,9 +56,9 @@ class MyArticleFragment : ListFragment() {
+
+ private var mAdapter: SimpleArticleListAdapter? = null
+ private lateinit var mViewModel: SimpleArticleListViewModel
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ mViewModel = provideListViewModel()
+ mViewModel.sortType = arguments?.getString(EntranceUtils.KEY_TYPE) ?: ""
+
+ super.onCreate(savedInstanceState)
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ setNavigationTitle("社区文章")
+ }
+
+ override fun getItemDecoration(): RecyclerView.ItemDecoration {
+ return VerticalItemDecoration(requireContext(), 8F, true)
+ }
+
+ override fun provideListViewModel(): SimpleArticleListViewModel {
+ return viewModelProvider()
+ }
+
+ override fun provideListAdapter(): SimpleArticleListAdapter {
+ return mAdapter ?: SimpleArticleListAdapter(requireContext()).apply { mAdapter = this }
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/gh/gamecenter/qa/article/SimpleArticleListViewModel.kt b/app/src/main/java/com/gh/gamecenter/qa/article/SimpleArticleListViewModel.kt
new file mode 100644
index 0000000000..c60918389d
--- /dev/null
+++ b/app/src/main/java/com/gh/gamecenter/qa/article/SimpleArticleListViewModel.kt
@@ -0,0 +1,30 @@
+package com.gh.gamecenter.qa.article
+
+import android.app.Application
+import com.gh.gamecenter.baselist.ListViewModel
+import com.gh.gamecenter.manager.UserManager
+import com.gh.gamecenter.qa.entity.AnswerEntity
+import com.gh.gamecenter.retrofit.RetrofitManager
+import io.reactivex.Observable
+import io.reactivex.Single
+
+class SimpleArticleListViewModel(application: Application)
+ : ListViewModel(application) {
+
+ var sortType = ""
+
+ override fun provideDataObservable(page: Int): Observable>? {
+ return null
+ }
+
+ override fun provideDataSingle(page: Int): Single> {
+ return RetrofitManager.getInstance(getApplication())
+ .api
+ .getAllCommunityArticles(UserManager.getInstance().community.id, sortType, page)
+ }
+
+ override fun mergeResultLiveData() {
+ mResultLiveData.addSource(mListLiveData) { mResultLiveData.postValue(it) }
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/gh/gamecenter/qa/recommends/AskQuestionsRecommendsFragment.java b/app/src/main/java/com/gh/gamecenter/qa/recommends/AskQuestionsRecommendsFragment.java
index b680d7c87e..3a0ec5107e 100644
--- a/app/src/main/java/com/gh/gamecenter/qa/recommends/AskQuestionsRecommendsFragment.java
+++ b/app/src/main/java/com/gh/gamecenter/qa/recommends/AskQuestionsRecommendsFragment.java
@@ -5,10 +5,11 @@ import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
+import android.view.View;
+
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.RecyclerView;
-import android.view.View;
import com.gh.common.util.CheckLoginUtils;
import com.gh.common.util.EntranceUtils;
@@ -68,9 +69,9 @@ public class AskQuestionsRecommendsFragment extends ListFragment startActivity(QuestionEditActivity.Companion.getIntent(getContext()));
+ mOnLoginListener = () -> startActivity(QuestionEditActivity.Companion.getIntent(requireContext()));
mParentFragment = exhaustParentFragment();
@@ -170,18 +171,18 @@ public class AskQuestionsRecommendsFragment extends ListFragment>()
+ val recommendedEntrances = MutableLiveData>()
init {
loadAskSlideColumn()
+ loadRecommendedEntrance()
}
fun loadAskSlideColumn() {
@@ -40,4 +45,17 @@ class AskRecommendSubjectViewModel(application: Application) : AndroidViewModel(
}
})
}
+
+ @SuppressLint("CheckResult")
+ fun loadRecommendedEntrance() {
+ RetrofitManager.getInstance(getApplication()).api
+ .getCommunityRecommendedEntrances(UserManager.getInstance().community.id)
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(object : BiResponse>() {
+ override fun onSuccess(data: ArrayList) {
+ recommendedEntrances.postValue(data)
+ }
+ })
+ }
}
diff --git a/app/src/main/java/com/gh/gamecenter/qa/recommends/AskRecommendWrapperFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/recommends/AskRecommendWrapperFragment.kt
index f1443742bd..bb1dfc884f 100644
--- a/app/src/main/java/com/gh/gamecenter/qa/recommends/AskRecommendWrapperFragment.kt
+++ b/app/src/main/java/com/gh/gamecenter/qa/recommends/AskRecommendWrapperFragment.kt
@@ -9,14 +9,16 @@ import android.os.Message
import android.view.Gravity
import android.view.LayoutInflater
import android.view.View
+import android.view.ViewGroup
import android.widget.TextView
+import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentTransaction
import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProviders
import androidx.viewpager.widget.ViewPager
+import com.facebook.drawee.view.SimpleDraweeView
import com.gh.base.fragment.BaseFragment
-import com.gh.common.util.DisplayUtils
-import com.gh.common.util.MtaHelper
+import com.gh.common.util.*
import com.gh.common.view.DumbRefreshLayout
import com.gh.common.view.SwipeRefreshHeader
import com.gh.gamecenter.R
@@ -32,6 +34,7 @@ class AskRecommendWrapperFragment : BaseFragment() {
private val mAppBar by bindView(R.id.recommend_subject_bar)
private val mSubjectViewPager by bindView(R.id.ask_recommends_subject_vp)
private val mChangeBtn by bindView(R.id.ask_recommend_change)
+ private val mEntranceContainer by bindView(R.id.ask_recommend_entrance_container)
val refreshLayout by bindView(R.id.refresh_layout)
val refreshHeader by bindView(R.id.swipe_refresh_header)
@@ -73,7 +76,6 @@ class AskRecommendWrapperFragment : BaseFragment() {
}
}
-
override fun getLayoutId(): Int {
return R.layout.fragment_ask_recommends_wrapper
}
@@ -96,11 +98,16 @@ class AskRecommendWrapperFragment : BaseFragment() {
subjectViewModel?.slideLiveData?.observe(this, Observer {
if (it != null && it.isNotEmpty()) {
mSubjectViewPager.visibility = View.VISIBLE
+ mEntranceContainer.visibility = View.VISIBLE
initViewPager(it)
} else {
mSubjectViewPager.visibility = View.GONE
}
})
+
+ subjectViewModel?.recommendedEntrances?.observeNonNull(this) {
+ initEntrance(it)
+ }
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
@@ -133,7 +140,7 @@ class AskRecommendWrapperFragment : BaseFragment() {
private fun showMoreItemDialog() {
val view = LayoutInflater.from(context).inflate(R.layout.ask_recommend_change, null)
- val dialog = Dialog(context)
+ val dialog = Dialog(requireContext())
dialog.setContentView(view)
val window = dialog.window
if (window != null) {
@@ -152,7 +159,7 @@ class AskRecommendWrapperFragment : BaseFragment() {
val itemRecommend = view.findViewById(R.id.sort_recommend)
val itemTime = view.findViewById(R.id.sort_time)
- itemRecommend.setOnClickListener { _ ->
+ itemRecommend.setOnClickListener {
recommendSelect.visibility = View.VISIBLE
timeSelect.visibility = View.INVISIBLE
mChangeBtn.text = "按精选排序"
@@ -160,7 +167,7 @@ class AskRecommendWrapperFragment : BaseFragment() {
changeFragment(false)
MtaHelper.onEvent("问答页面", UserManager.getInstance().community.name, "推荐-按精选排序")
}
- itemTime.setOnClickListener { _ ->
+ itemTime.setOnClickListener {
recommendSelect.visibility = View.INVISIBLE
timeSelect.visibility = View.VISIBLE
mChangeBtn.text = "按时间排序"
@@ -169,13 +176,9 @@ class AskRecommendWrapperFragment : BaseFragment() {
MtaHelper.onEvent("问答页面", UserManager.getInstance().community.name, "推荐-按时间排序")
}
- if (mRecommendsFragment != null && mRecommendsFragment!!.isVisible) {
- recommendSelect.visibility = View.VISIBLE
- timeSelect.visibility = View.INVISIBLE
- } else {
- recommendSelect.visibility = View.INVISIBLE
- timeSelect.visibility = View.VISIBLE
- }
+ val recommendFragmentIsVisible = mRecommendsFragment != null && mRecommendsFragment!!.isVisible
+ recommendSelect.visibleIf(recommendFragmentIsVisible)
+ timeSelect.visibleIf(!recommendFragmentIsVisible)
}
private fun initViewPager(slide: List) {
@@ -186,6 +189,29 @@ class AskRecommendWrapperFragment : BaseFragment() {
sendScrollMessage()
}
+ private fun initEntrance(linkList: List?) {
+ linkList?.let {
+ mEntranceContainer.removeAllViews()
+
+ for ((index, link) in it.withIndex()) {
+ if (index == 5) break
+
+ val entranceViewItem = LayoutInflater.from(requireContext()).inflate(R.layout.item_entrance, mEntranceContainer, false)
+
+ val entranceViewTv = entranceViewItem.findViewById(R.id.entrance_tv)
+ val entranceViewIv = entranceViewItem.findViewById(R.id.entrance_iv)
+
+ entranceViewTv.text = link.name
+ ImageUtils.display(entranceViewIv, link.image)
+
+ entranceViewItem.setOnClickListener {
+ DirectUtils.directToLinkPage(entranceViewTv.context, link, "", "首页-推荐-推荐入口")
+ }
+
+ mEntranceContainer.addView(entranceViewItem)
+ }
+ }
+ }
override fun onResume() {
super.onResume()
@@ -213,7 +239,7 @@ class AskRecommendWrapperFragment : BaseFragment() {
transaction.commitAllowingStateLoss()
}
- private fun alterFragment(transaction: FragmentTransaction, cls: Class): T? {
+ private fun alterFragment(transaction: FragmentTransaction, cls: Class): T? {
val findFragmentByTag = childFragmentManager.findFragmentByTag(cls.simpleName)
var fragmentByTag: T? = if (findFragmentByTag != null) {
findFragmentByTag as T
@@ -240,6 +266,5 @@ class AskRecommendWrapperFragment : BaseFragment() {
companion object {
private const val VIEWPAGER_INTERVAL: Long = 3000
private const val VIEWPAGER_HANDLE_KEY = 0
-
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/gh/gamecenter/qa/recommends/newest/RecommendNewestAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/recommends/newest/RecommendNewestAdapter.kt
index 7027f7e471..b3ee67c793 100644
--- a/app/src/main/java/com/gh/gamecenter/qa/recommends/newest/RecommendNewestAdapter.kt
+++ b/app/src/main/java/com/gh/gamecenter/qa/recommends/newest/RecommendNewestAdapter.kt
@@ -1,9 +1,9 @@
package com.gh.gamecenter.qa.recommends.newest
import android.content.Context
-import androidx.recyclerview.widget.RecyclerView
import android.view.View
import android.view.ViewGroup
+import androidx.recyclerview.widget.RecyclerView
import com.gh.common.constant.ItemViewType
import com.gh.gamecenter.R
import com.gh.gamecenter.adapter.viewholder.FooterViewHolder
@@ -16,7 +16,7 @@ import com.gh.gamecenter.qa.entity.Questions
import com.gh.gamecenter.qa.questions.detail.QuestionsDetailActivity
import com.gh.gamecenter.qa.recommends.AskQuestionsRecommendsViewHolder
-class RecommendNewestAdapter(context: Context) : ListAdapter(context) {
+open class RecommendNewestAdapter(context: Context) : ListAdapter(context) {
override fun areItemsTheSame(oldItem: AnswerEntity?, newItem: AnswerEntity?): Boolean {
return oldItem?.id == newItem?.id
@@ -27,7 +27,7 @@ class RecommendNewestAdapter(context: Context) : ListAdapter(conte
return ItemViewType.ITEM_BODY
}
- override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): androidx.recyclerview.widget.RecyclerView.ViewHolder {
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
val view: View
return when (viewType) {
ItemViewType.ITEM_FOOTER -> {
@@ -42,10 +42,10 @@ class RecommendNewestAdapter(context: Context) : ListAdapter(conte
}
override fun getItemCount(): Int {
- return if (mEntityList.size > 0 || mIsOver) mEntityList.size + ListAdapter.FOOTER_ITEM_COUNT else 0
+ return if (mEntityList.size > 0 || mIsOver) mEntityList.size + FOOTER_ITEM_COUNT else 0
}
- override fun onBindViewHolder(holder: androidx.recyclerview.widget.RecyclerView.ViewHolder, position: Int) {
+ override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
when (getItemViewType(position)) {
ItemViewType.ITEM_BODY -> {
val viewHolder = holder as AskQuestionsRecommendsViewHolder
@@ -55,22 +55,21 @@ class RecommendNewestAdapter(context: Context) : ListAdapter(conte
questions.title = answerEntity.articleTitle
answerEntity.questions = questions
}
- val path = "问答-推荐-按时间"
- viewHolder.initQuestionsHotViewHolder(mContext, answerEntity, "", path)
+ viewHolder.initQuestionsHotViewHolder(mContext, answerEntity, "", getPath())
viewHolder.mAskTitle.setOnClickListener {
if ("community_article" == answerEntity.type) {
- mContext.startActivity(ArticleDetailActivity.getIntent(mContext, UserManager.getInstance().community, answerEntity.id!!, "", path))
+ mContext.startActivity(ArticleDetailActivity.getIntent(mContext, UserManager.getInstance().community, answerEntity.id!!, "", getPath()))
} else {
val questions = answerEntity.questions
- mContext.startActivity(QuestionsDetailActivity.getIntent(mContext, questions.id, "", path))
+ mContext.startActivity(QuestionsDetailActivity.getIntent(mContext, questions.id, "", getPath()))
}
}
viewHolder.itemView.setOnClickListener {
if ("community_article" == answerEntity.type) {
- mContext.startActivity(ArticleDetailActivity.getIntent(mContext, UserManager.getInstance().community, answerEntity.id!!, "", path))
+ mContext.startActivity(ArticleDetailActivity.getIntent(mContext, UserManager.getInstance().community, answerEntity.id!!, "", getPath()))
} else {
- mContext.startActivity(AnswerDetailActivity.getIntent(mContext, answerEntity.id, "", path))
+ mContext.startActivity(AnswerDetailActivity.getIntent(mContext, answerEntity.id, "", getPath()))
}
}
}
@@ -82,4 +81,8 @@ class RecommendNewestAdapter(context: Context) : ListAdapter(conte
}
}
+ open fun getPath(): String {
+ return "问答-推荐-按时间"
+ }
+
}
\ No newline at end of file
diff --git a/app/src/main/java/com/gh/gamecenter/qa/recommends/newest/RecommendNewestFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/recommends/newest/RecommendNewestFragment.kt
index e73a7b47b9..31f324640e 100644
--- a/app/src/main/java/com/gh/gamecenter/qa/recommends/newest/RecommendNewestFragment.kt
+++ b/app/src/main/java/com/gh/gamecenter/qa/recommends/newest/RecommendNewestFragment.kt
@@ -1,8 +1,8 @@
package com.gh.gamecenter.qa.recommends.newest
import android.app.Activity
-import androidx.lifecycle.ViewModelProviders
import android.content.Intent
+import androidx.lifecycle.ViewModelProviders
import androidx.recyclerview.widget.RecyclerView
import com.gh.common.view.DumbRefreshLayout
import com.gh.common.view.VerticalItemDecoration
@@ -33,7 +33,7 @@ class RecommendNewestFragment : ListFragment getDeviceAlias(@Query("model") String model);
+ /**
+ * 获取社区推荐位
+ */
+ @GET("communities/{community_id}/community-recommends")
+ Single> getCommunityRecommendedEntrances(@Path("community_id") String communityId);
+
+ /**
+ * 获取社区的全部文章
+ */
+ @GET("communities/{community_id}/articles")
+ Single> getAllCommunityArticles(@Path("community_id") String communityId, @Query("sort") String sort, @Query("page") int page);
+
/**
* 获取评分修改记录
*/
diff --git a/app/src/main/res/layout/ask_recommends_subject.xml b/app/src/main/res/layout/ask_recommends_subject.xml
index a929878b78..175ad9c010 100644
--- a/app/src/main/res/layout/ask_recommends_subject.xml
+++ b/app/src/main/res/layout/ask_recommends_subject.xml
@@ -1,41 +1,55 @@
-
+
+ android:id="@+id/ask_recommends_subject_vp"
+ android:layout_width="match_parent"
+ android:layout_height="128dp"
+ android:layout_marginLeft="20dp"
+ android:layout_marginRight="20dp"
+ android:layout_marginBottom="10dp"
+ android:clipChildren="false"
+ android:overScrollMode="never"
+ android:visibility="visible" />
+
+
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_below="@+id/ask_recommends_subject_vp"
+ android:background="@color/background">
-
-
+ android:id="@+id/ask_recommend_change"
+ android:layout_width="wrap_content"
+ android:layout_height="35dp"
+ android:layout_marginLeft="20dp"
+ android:drawableRight="@drawable/ask_recommend_change"
+ android:drawablePadding="7dp"
+ android:gravity="center"
+ android:paddingTop="9dp"
+ android:paddingBottom="9dp"
+ android:text="按精选排序"
+ android:textColor="@color/title"
+ android:textSize="12sp" />
+
+
diff --git a/app/src/main/res/layout/ask_subject_top_item.xml b/app/src/main/res/layout/ask_subject_top_item.xml
index f27da523db..b5b4496c19 100644
--- a/app/src/main/res/layout/ask_subject_top_item.xml
+++ b/app/src/main/res/layout/ask_subject_top_item.xml
@@ -19,7 +19,8 @@
imageUrl = "@{entity.icon}"
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
- app:viewAspectRatio = "2.3" />
+ app:viewAspectRatio = "2.5"
+ app:layout_constraintTop_toTopOf = "parent" />
+
+
+
+
+
+