Bläddra i källkod

修复玩转游戏中滑动不顺畅的问题

zengjiebin 7 år sedan
förälder
incheckning
31f089b314

+ 3 - 1
app/src/main/java/com/kfzs/duanduan/event/EventTypes.java

@@ -46,5 +46,7 @@ public enum EventTypes {
     FGT_SHEEP_SET_BOTTOM_LINE , //设置底线内容
     FGT_SHEEP_SHOW_NEW_USER_HONG_BAO , //显示红包
     REFRESH_AUDITACTIVITY_DATA,//审核数据刷新
-    FGT_PLAYGAME_REFRESH_H , //刷新玩转游戏高度
+    FGT_PLAY_GAME_REFRESH_H, //刷新玩转游戏高度
+    FGT_PLAY_GAME_FOOT_VIEW_CALL_BACK, //玩转游戏中ViewPager内容中的任务列表XRecyclerView的FootView刷新回调
+    FGT_PLAY_GAME_SET_BOTTOM_LINE , //设置底线内容
 }

+ 10 - 4
app/src/main/java/com/kfzs/duanduan/fragment/FgtSmallSheep.java

@@ -86,6 +86,7 @@ import com.sheep.gamegroup.view.adapter.AdpHomeListListview;
 import com.sheep.gamegroup.view.adapter.AdpTryMakemoney;
 import com.sheep.gamegroup.view.adapter.TryMakeMoneyAdp;
 import com.sheep.gamegroup.view.dialog.DialogNewbieTaskList;
+import com.sheep.gamegroup.view.fragment.FgtPlayGameSon;
 import com.sheep.gamegroup.view.fragment.FgtTryMakeMoney;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
@@ -219,7 +220,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
     public static final int WHAT_LOAD_RUN_TASK = 1;//加载正在进行的任务列表
     public static final int WHAT_UPDATE_VP_HEIGHT = 2;//刷新viewpager高度
     public static final int WHAT_UPDATE_BOTTOM_LINE = 3;//刷新底线(双击我回到顶部)
-    public static final int WHAT_UPDATE__FOOT_VIEW_CALL_BACK = 4;//刷新发布任务列表的加载更多的状态回调
+    public static final int WHAT_UPDATE_FOOT_VIEW_CALL_BACK = 4;//刷新发布任务列表的加载更多的状态回调
     public static final int WHAT_TRY_SHOW_HB = 7;//尝试显示红包
     public Handler mHandler = new Handler(Looper.getMainLooper()) {
         @Override
@@ -258,7 +259,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
                     params.height = count == 0 ? G.HEIGHT / 2 : (count * getResources().getDimensionPixelSize(R.dimen.content_padding_96) + getResources().getDimensionPixelSize(R.dimen.content_padding));
                     mViewPager.setLayoutParams(params);
                     break;
-                case WHAT_UPDATE__FOOT_VIEW_CALL_BACK://发布任务列表的加载更多的回调
+                case WHAT_UPDATE_FOOT_VIEW_CALL_BACK://发布任务列表的加载更多的回调
                     String obj = (String) msg.obj;
                     switch (obj){
                         case "onLoadingMore":
@@ -557,7 +558,8 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
          * tablayout
          */
         adpViewPagerDetail = new AdpTryMakemoney(getChildFragmentManager(), activity);
-        adpViewPagerDetail.add(FgtTryMakeMoney.newInstance(0, "is_hot"), "每日必做");
+        FgtTryMakeMoney firstItem = FgtTryMakeMoney.newInstance(0, "is_hot");
+        adpViewPagerDetail.add(firstItem,"每日必做");
         adpViewPagerDetail.add(FgtTryMakeMoney.newInstance(1, "about_to_begin"), "即将开始");
 
 //        mViewPager.setOffscreenPageLimit(2);
@@ -573,7 +575,11 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
 
             @Override
             public void onPageSelected(int position) {
+                FgtTryMakeMoney lastItem = (FgtTryMakeMoney) adpViewPagerDetail.getItem(position);
                 curPosition = position;
+                FgtTryMakeMoney item = (FgtTryMakeMoney) adpViewPagerDetail.getItem(curPosition);
+                lastItem.setSelected(false);
+                item.setSelected(true);
                 mHandler.sendEmptyMessage(WHAT_UPDATE_VP_HEIGHT);//重新计算viewpager高度
             }
 
@@ -1214,7 +1220,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
                 break;
             case FGT_SHEEP_FOOT_VIEW_CALL_BACK:
                 Message msg = Message.obtain();
-                msg.what = WHAT_UPDATE__FOOT_VIEW_CALL_BACK;
+                msg.what = WHAT_UPDATE_FOOT_VIEW_CALL_BACK;
                 msg.obj = event.getData();
                 mHandler.sendMessage(msg);
                 break;

+ 32 - 0
app/src/main/java/com/sheep/gamegroup/model/entity/GameEntityList.java

@@ -0,0 +1,32 @@
+package com.sheep.gamegroup.model.entity;
+
+import com.sheep.gamegroup.util.ListUtil;
+
+import java.util.List;
+
+/**
+ * Created by ljy on 2018/9/4.
+ */
+
+public class GameEntityList{
+    private List<GameEntity> list;
+
+    public GameEntityList(List<GameEntity> list) {
+        this.list = list;
+    }
+
+    public List<GameEntity> getList() {
+        return list;
+    }
+
+    public void setList(List<GameEntity> list) {
+        this.list = list;
+    }
+    public void add(List<GameEntity> list){
+        if(this.list == null){
+            this.list = list;
+        } else {
+            ListUtil.addAll(this.list, list);
+        }
+    }
+}

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/util/ViewUtil.java

@@ -473,7 +473,7 @@ public class ViewUtil {
     }
 
     public static View setBottomLine(final XRecyclerView view_list, final Action1<String> action1) {
-        View view = LayoutInflater.from(SheepApp.getInstance()).inflate(R.layout.common_foot_view, null);
+        View view = LayoutInflater.from(SheepApp.getInstance()).inflate(action1 != null ? R.layout.empty : R.layout.common_foot_view, null);
         view_list.setFootView(view, new CustomFooterViewCallBack() {
             @Override
             public void onLoadingMore(View yourFooterView) {

+ 77 - 0
app/src/main/java/com/sheep/gamegroup/view/adapter/PlayGameListAdapter.java

@@ -0,0 +1,77 @@
+package com.sheep.gamegroup.view.adapter;
+
+import android.app.Activity;
+import android.content.Context;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import com.sheep.gamegroup.model.entity.GameEntity;
+import com.sheep.gamegroup.model.entity.GameEntityList;
+import com.sheep.gamegroup.util.CommonUtil;
+import com.sheep.gamegroup.util.GlideImageLoader;
+import com.sheep.gamegroup.util.Jump2View;
+import com.sheep.gamegroup.util.ViewHolder;
+import com.sheep.gamegroup.util.ViewUtil;
+import com.sheep.jiuyan.samllsheep.R;
+
+import java.util.List;
+
+/**
+ * Created by ljy on 2018/9/3.
+ */
+
+public class PlayGameListAdapter extends AdbCommonRecycler<GameEntityList>{
+    public PlayGameListAdapter(Context context, List<GameEntityList> list) {
+        super(context, list);
+    }
+
+    @Override
+    public int getViewIdByType(int type) {
+        return R.layout.try_mkmy_release_task_list;
+    }
+
+    @Override
+    public void convert(ViewHolder holderParent, final GameEntityList item) {
+        RecyclerView recyclerView = holderParent.getView(R.id.release_task_listview, RecyclerView.class);
+        recyclerView.setHasFixedSize(true);
+        recyclerView.setLayoutManager(new LinearLayoutManager(context));
+        recyclerView.setAdapter(new AdbCommonRecycler<GameEntity>(context, item.getList()){
+            @Override
+            public int getViewIdByType(int type) {
+                return R.layout.play_game_vertical_list_item;
+            }
+
+            @Override
+            public void convert(ViewHolder holder, final GameEntity gameEntity) {
+                holder.itemView.setOnClickListener(new View.OnClickListener() {
+                    @Override
+                    public void onClick(View v) {
+                        Jump2View.getInstance().goPlayGameDetail((Activity) context, gameEntity.getApp().getId());
+                    }
+                });
+                View item_download_welfare_line = holder.itemView.findViewById(R.id.line_tv);
+                TextView detail_task_tv_center = holder.itemView.findViewById(R.id.detail_task_tv_center);
+                TextView item_name_tv = holder.itemView.findViewById(R.id.item_name_tv);
+                TextView item_date_tv = holder.itemView.findViewById(R.id.item_date_tv);
+                LinearLayout ll_game_tag = holder.itemView.findViewById(R.id.ll_game_tag);
+
+                ViewUtil.setText(item_name_tv, gameEntity.getApp().getName());
+                ViewUtil.setText(item_date_tv, gameEntity.getApp().getPackage_size()+"M");
+                GlideImageLoader.setGameImage((ImageView) holder.itemView.findViewById(R.id.item_icon_iv), gameEntity.getApp().getIcon());
+                CommonUtil.getInstance().palyGameDetailBtnValue(context,gameEntity,detail_task_tv_center);
+
+                item_download_welfare_line.setVisibility(holder.getAdapterPosition() + 1 == getItemCount() ? View.GONE : View.VISIBLE);
+
+                //tag 标签绘制
+                CommonUtil.getInstance().paintLineaLayout(context, gameEntity, ll_game_tag, 4,R.color.txt_bule, R.drawable.shape_blue_stroke_rectangle_no_lb);
+            }
+        });
+
+
+
+    }
+}

+ 15 - 4
app/src/main/java/com/sheep/gamegroup/view/fragment/BaseListFragment.java

@@ -75,6 +75,7 @@ public abstract class BaseListFragment<T> extends BaseFragment {
             e.printStackTrace();
         }
     }
+    protected View bottomLine;
     public void initListener() {
         view_list.setLoadingListener(new XRecyclerView.LoadingListener() {
             @Override
@@ -89,15 +90,19 @@ public abstract class BaseListFragment<T> extends BaseFragment {
                     initData();
                 }else {
                     view_list.setNoMore(true);
+                    setNoMore(true);
                 }
             }
         });
-        ViewUtil.setBottomLine(view_list);
+        bottomLine = ViewUtil.setBottomLine(view_list, getNoMoreCallBack());
         view_list.setLayoutManager(new LinearLayoutManager(SheepApp.getInstance()));
         view_list.setAdapter(getAdapter());
 
     }
 
+    public void setNoMore(boolean noMore) {
+        this.noMore = noMore;
+    }
 
     protected List<T> list = ListUtil.emptyList();
     //默认先获取缓存
@@ -144,8 +149,12 @@ public abstract class BaseListFragment<T> extends BaseFragment {
                     }
                 });
     }
+    public Action1<String> getNoMoreCallBack(){
+        return null;
+    }
 
     public void refreshData(){
+        setNoMore(false);
         empty_view.setVisibility(View.INVISIBLE);
         list.clear();
         view_list.getAdapter().notifyDataSetChanged();
@@ -167,9 +176,6 @@ public abstract class BaseListFragment<T> extends BaseFragment {
         notifyData();
         view_list.getFootView().setVisibility(view_list.getAdapter().getItemCount() == 0?View.GONE : View.VISIBLE);
     }
-    private void loadComplete(){
-
-    }
     Unbinder unbinder;
     @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
@@ -202,6 +208,11 @@ public abstract class BaseListFragment<T> extends BaseFragment {
         if(view_list != null)
             view_list.setPullRefreshEnabled(false);
     }
+
+    private boolean noMore = false;
+    public boolean isNoMore() {
+        return noMore;
+    }
     protected abstract RecyclerView.Adapter getAdapter();
     protected abstract String getKey(int page, int per_page);
     protected abstract Observable<BaseMessage> getApi(ApiService apiService);

+ 51 - 4
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtPlayGame.java

@@ -82,9 +82,13 @@ public class FgtPlayGame extends BaseFragment {
     SwipeRefreshLayout refresh;
     @BindView(R.id.scrollView)
     NestedScrollView scrollView;
+    @BindView(R.id.bottom_line_text)
+    TextView bottom_line_text;
     Unbinder unbinder;
 
     public static final int WHAT_UPDATE_VP_HEIGHT = 1;//刷新viewpager高度
+    public static final int WHAT_UPDATE_BOTTOM_LINE = 3;//刷新底线(双击我回到顶部)
+    public static final int WHAT_UPDATE_FOOT_VIEW_CALL_BACK = 4;//刷新发布任务列表的加载更多的状态回调
     private Activity activity;
     private List<GameEntity> everyDayPlayListData = new ArrayList<>();
     private List<GameEntity> hotListData = new ArrayList<>();
@@ -100,9 +104,10 @@ public class FgtPlayGame extends BaseFragment {
         @Override
         public void handleMessage(Message msg) {
             super.handleMessage(msg);
+            FgtPlayGameSon item;
             switch (msg.what) {
                 case WHAT_UPDATE_VP_HEIGHT:
-                    FgtPlayGameSon item = (FgtPlayGameSon) mAdapter.getItem(curPosition);
+                    item = (FgtPlayGameSon) mAdapter.getItem(curPosition);
                     if (pager == null || item == null) {
                         return;
                     }
@@ -111,6 +116,27 @@ public class FgtPlayGame extends BaseFragment {
                     ViewGroup.LayoutParams params = pager.getLayoutParams();
                     params.height = count == 0 ? G.HEIGHT / 2 : (count * getResources().getDimensionPixelSize(R.dimen.content_padding_96) + getResources().getDimensionPixelSize(R.dimen.content_padding));
                     pager.setLayoutParams(params);
+                case WHAT_UPDATE_FOOT_VIEW_CALL_BACK://发布任务列表的加载更多的回调
+                    if(msg.obj instanceof String) {
+                        String obj = (String) msg.obj;
+                        switch (obj) {
+                            case "onLoadingMore":
+                                bottom_line_text.setText("羊羊努力加载中...");
+                                break;
+                            case "onLoadMoreComplete":
+                                bottom_line_text.setText("上拉下载更多,双击我回到顶部");
+                                break;
+                            case "onSetNoMore":
+                                break;
+                        }
+                    }
+                    break;
+                case WHAT_UPDATE_BOTTOM_LINE://刷新底线
+                    item = (FgtPlayGameSon) mAdapter.getItem(curPosition);
+                    if (mAdapter == null || item == null) {
+                        return;
+                    }
+                    bottom_line_text.setText(item.isNoMore() ?"我是有底线的,双击我回到顶部" : "双击我回到顶部");
                     break;
             }
         }
@@ -374,8 +400,12 @@ public class FgtPlayGame extends BaseFragment {
         if (!ListUtil.isEmpty(newList)) {
             list.clear();
             ListUtil.addAll(list, newList);
+            int i = 0;
             for(FindTag findTag:list){
-                mAdapter.add(FgtPlayGameSon.newInstance(findTag.getId()), findTag.getName());
+                FgtPlayGameSon item = FgtPlayGameSon.newInstance(findTag.getId());
+                item.setSelected(i == 0);//默认选中第一个
+                mAdapter.add(item, findTag.getName());
+                i++;
             }
             pager.setAdapter(mAdapter);
             indicator.setupWithViewPager(pager);
@@ -388,7 +418,11 @@ public class FgtPlayGame extends BaseFragment {
                 @Override
                 public void onPageSelected(int i) {
 //                    FIND_TAG.onEvent("find_tag_name", ListUtil.hasIndex(list, i - 1) );
+                    FgtPlayGameSon lastItem = (FgtPlayGameSon) mAdapter.getItem(i);
                     curPosition = i;
+                    FgtPlayGameSon item = (FgtPlayGameSon) mAdapter.getItem(curPosition);
+                    lastItem.setSelected(false);
+                    item.setSelected(true);
                     mHandler.sendEmptyMessage(WHAT_UPDATE_VP_HEIGHT);//重新计算viewpager高度
                 }
 
@@ -403,7 +437,7 @@ public class FgtPlayGame extends BaseFragment {
         }
     }
 
-    @OnClick({R.id.every_day_more_tv, R.id.recent_hot_more_tv})
+    @OnClick({R.id.every_day_more_tv, R.id.recent_hot_more_tv, R.id.bottom_line})
     public void onViewClicked(View view) {
         switch (view.getId()) {
             case R.id.every_day_more_tv:
@@ -412,14 +446,27 @@ public class FgtPlayGame extends BaseFragment {
             case R.id.recent_hot_more_tv:
                 Jump2View.getInstance().goEverydayOrCurrentHotGame(activity, 1);
                 break;
+            case R.id.bottom_line://我是有底线的,双击我回到顶部
+                scrollView.fullScroll(NestedScrollView.FOCUS_UP);
+                break;
         }
     }
     @Subscribe
     public void onEventMainThread(BigEvent event) {
         switch (event.getEventTypes()) {
-            case FGT_PLAYGAME_REFRESH_H:
+            case FGT_PLAY_GAME_REFRESH_H:
                 mHandler.sendEmptyMessage(WHAT_UPDATE_VP_HEIGHT);
                 break;
+            case FGT_PLAY_GAME_FOOT_VIEW_CALL_BACK:
+                Message msg = Message.obtain();
+                msg.what = WHAT_UPDATE_FOOT_VIEW_CALL_BACK;
+                msg.obj = event.getData();
+                if(msg.obj != null)
+                    mHandler.sendMessage(msg);
+                break;
+            case FGT_PLAY_GAME_SET_BOTTOM_LINE:
+                mHandler.sendEmptyMessage(WHAT_UPDATE_BOTTOM_LINE);
+                break;
         }
     }
 

+ 34 - 3
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtPlayGameSon.java

@@ -11,16 +11,20 @@ import com.kfzs.duanduan.event.EventTypes;
 import com.sheep.gamegroup.model.api.ApiService;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.GameEntity;
+import com.sheep.gamegroup.model.entity.GameEntityList;
 import com.sheep.gamegroup.util.CommonUtil;
-import com.sheep.gamegroup.view.adapter.PlayGameItemAdapter;
+import com.sheep.gamegroup.util.ListUtil;
+import com.sheep.gamegroup.view.adapter.PlayGameListAdapter;
 
 import org.greenrobot.eventbus.EventBus;
 import org.greenrobot.eventbus.Subscribe;
 
+import java.util.List;
 import java.util.Locale;
 
 import butterknife.ButterKnife;
 import rx.Observable;
+import rx.functions.Action1;
 
 /**
  * Created by ljy on 2018/9/3.
@@ -50,8 +54,29 @@ public class FgtPlayGameSon extends BaseListFragment<GameEntity> {
     }
 
     @Override
+    public void setNoMore(boolean noMore) {
+        super.setNoMore(noMore);
+        EventBus.getDefault().post(BigEvent.get().setEventTypes(EventTypes.FGT_PLAY_GAME_SET_BOTTOM_LINE));
+    }
+
+    @Override
+    public Action1<String> getNoMoreCallBack() {
+        return new Action1<String>() {
+            @Override
+            public void call(String msg) {
+                if(isSelected)
+                    EventBus.getDefault().post(BigEvent.get().setEventTypes(EventTypes.FGT_PLAY_GAME_FOOT_VIEW_CALL_BACK).setData(msg));
+            }
+        };
+    }
+
+    private GameEntityList gameEntityList = new GameEntityList(list);
+    private List<GameEntityList> gameEntityListList = ListUtil.emptyList();
+    @Override
     protected RecyclerView.Adapter getAdapter() {
-        return new PlayGameItemAdapter(activity, list);
+        if(gameEntityListList.isEmpty())
+            gameEntityListList.add(gameEntityList);
+        return new PlayGameListAdapter(activity, gameEntityListList);
     }
 
     @Override
@@ -71,12 +96,18 @@ public class FgtPlayGameSon extends BaseListFragment<GameEntity> {
 
     @Override
     public void notifyData() {
-        EventBus.getDefault().post(BigEvent.get().setEventTypes(EventTypes.FGT_PLAYGAME_REFRESH_H));
+        bottomLine.setVisibility(View.GONE);
+        if(isSelected)
+            EventBus.getDefault().post(BigEvent.get().setEventTypes(EventTypes.FGT_PLAY_GAME_REFRESH_H));
     }
 
     @Subscribe
     public void onEventMainThread(BigEvent event){
         CommonUtil.getInstance().setEventResultViewStatus(event, view_list);
     }
+    private boolean isSelected = false;
 
+    public void setSelected(boolean selected) {
+        isSelected = selected;
+    }
 }

+ 9 - 4
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtTryMakeMoney.java

@@ -106,7 +106,7 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
         recyclerview.refreshComplete();
         recyclerview.loadMoreComplete();
         notifyBottomLine(false);
-        if (isFromHome)
+        if (isFromHome && isSelected)
             EventBus.getDefault().post(BigEvent.get().setEventTypes(EventTypes.FGT_SHEEP_REFRESH_H));
     }
 
@@ -223,13 +223,13 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
         }
         recyclerview.setAdapter(tryMakeMoneyAdp);
 
-        bottomLine = ViewUtil.setBottomLine(recyclerview, new Action1<String>() {
+        bottomLine = ViewUtil.setBottomLine(recyclerview, isFromHome ? new Action1<String>() {
             @Override
             public void call(String msg) {
-                if (isFromHome)
+                if (isFromHome && isSelected)
                     EventBus.getDefault().post(BigEvent.get().setEventTypes(EventTypes.FGT_SHEEP_FOOT_VIEW_CALL_BACK).setData(msg));
             }
-        });
+        } : null);
 
     }
     private View bottomLine;
@@ -533,4 +533,9 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
     public boolean isNoMore() {
         return noMore;
     }
+    private boolean isSelected = true;
+
+    public void setSelected(boolean selected) {
+        isSelected = selected;
+    }
 }

+ 9 - 2
app/src/main/res/layout/fgt_play_game.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     android:id="@+id/refresh"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
@@ -8,11 +9,17 @@
     <android.support.v4.widget.NestedScrollView
         android:id="@+id/scrollView"
         android:layout_width="match_parent"
-        android:layout_height="match_parent">
+        android:layout_height="match_parent"
+        android:layout_gravity="fill_vertical"
+        android:fillViewport="true"
+        android:scrollbars="none"
+        app:layout_behavior="@string/appbar_scrolling_view_behavior">
 
         <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="match_parent"
+            android:focusable="true"
+            android:focusableInTouchMode="true"
             android:orientation="vertical">
 
             <include layout="@layout/homepage_item_banner" />
@@ -69,7 +76,7 @@
             <!--选项卡-->
             <include layout="@layout/tablayout_viewpager_layout" />
 
-            <!--<include layout="@layout/find_item_bottom"/>-->
+            <include layout="@layout/find_item_bottom"/>
         </LinearLayout>
 
     </android.support.v4.widget.NestedScrollView>

+ 2 - 1
app/src/main/res/layout/net_empty_xrecycler.xml

@@ -26,5 +26,6 @@
         android:id="@+id/view_list"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:layout_below="@+id/check_net_ll"/>
+        android:layout_below="@+id/check_net_ll"
+        android:descendantFocusability="blocksDescendants"/>
 </RelativeLayout>

+ 1 - 1
app/src/main/res/layout/title.xml

@@ -91,7 +91,7 @@
         android:gravity="center"
         android:minWidth="?attr/actionBarSize"
         android:layout_alignParentEnd="true"
-        android:layout_marginEnd="?attr/actionBarSize"
+        android:layout_marginEnd="40dp"
         android:visibility="gone"/>
 
     <TextView