Skip to content

Commit 7a63a71

Browse files
committed
添加快速返回顶部
1 parent 9ce2e57 commit 7a63a71

6 files changed

Lines changed: 24 additions & 7 deletions

File tree

diycode-app/src/main/java/com/gcssloop/diycode/activity/MainActivity.java

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,10 @@ public class MainActivity extends BaseActivity
6262
implements NavigationView.OnNavigationItemSelectedListener {
6363
private DataCache mCache;
6464
private Config mConfig;
65-
private int mCurrentPosition = -1;
65+
private int mCurrentPosition = 0;
66+
TopicListFragment mFragment1;
67+
NewsListFragment mFragment2;
68+
SitesListFragment mFragment3;
6669

6770
@Override
6871
public int getLayoutId() {
@@ -85,9 +88,9 @@ private void initViewPager(ViewHolder holder) {
8588
TabLayout mTabLayout = holder.get(R.id.tab_layout);
8689
mViewPager.setOffscreenPageLimit(1); // 防止滑动到第三个页面时,第一个页面被销毁
8790

88-
final TopicListFragment mFragment1 = TopicListFragment.newInstance();
89-
final NewsListFragment mFragment2 = NewsListFragment.newInstance();
90-
final SitesListFragment mFragment3 = SitesListFragment.newInstance();
91+
mFragment1 = TopicListFragment.newInstance();
92+
mFragment2 = NewsListFragment.newInstance();
93+
mFragment3 = SitesListFragment.newInstance();
9194

9295
mViewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
9396
String[] types = {"Topics", "News", "Sites"};
@@ -131,8 +134,8 @@ public void onPageScrollStateChanged(int state) {
131134
}
132135
});
133136

134-
int lastPosition = mConfig.getMainViewPagerPosition();
135-
mViewPager.setCurrentItem(lastPosition);
137+
mCurrentPosition = mConfig.getMainViewPagerPosition();
138+
mViewPager.setCurrentItem(mCurrentPosition);
136139

137140
mTabLayout.setupWithViewPager(mViewPager);
138141
}
@@ -270,6 +273,13 @@ public boolean onOptionsItemSelected(MenuItem item) {
270273
openActivity(NotificationActivity.class);
271274
}
272275
return true;
276+
} else if (id == R.id.action_quick_to_top){
277+
Logger.e("点击返回头部"+mCurrentPosition);
278+
switch (mCurrentPosition){
279+
case 0:
280+
mFragment1.quickToTop();
281+
break;
282+
}
273283
}
274284

275285
return super.onOptionsItemSelected(item);

diycode-app/src/main/java/com/gcssloop/diycode/fragment/NewsListFragment.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ protected int getLayoutId() {
111111
}
112112

113113
private void loadData() {
114+
mRefreshLayout.setEnabled(true);
114115
// 第一次加载,默认从缓存加载
115116
List<New> news = mDataCache.getNewsList();
116117
if (null != news && news.size() > 0) {

diycode-app/src/main/java/com/gcssloop/diycode/fragment/TopicListFragment.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,7 @@ public void onDestroyView() {
291291
}
292292

293293
public void quickToTop() {
294+
Logger.e("快速返回");
294295
if (mScrollView != null) {
295296
mScrollView.smoothScrollTo(0, 0);
296297
}

diycode-app/src/main/res/menu/main.xml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,16 @@
2323

2424
<menu xmlns:android="http://schemas.android.com/apk/res/android"
2525
xmlns:app="http://schemas.android.com/apk/res-auto">
26+
<item
27+
android:id="@+id/action_quick_to_top"
28+
android:icon="@mipmap/up"
29+
android:title="快速返回"
30+
app:showAsAction="always"/>
2631
<item
2732
android:id="@+id/action_notification"
2833
android:icon="@mipmap/notification"
2934
android:title="通知"
30-
app:showAsAction="ifRoom"/>
35+
app:showAsAction="always"/>
3136
<item
3237
android:id="@+id/action_settings"
3338
android:orderInCategory="100"
197 Bytes
Loading
1.49 KB
Loading

0 commit comments

Comments
 (0)