瀏覽代碼

处理部分问题

Pq 8 月之前
父節點
當前提交
d17d1d22a5

+ 16 - 9
BaseLibrary/src/main/java/com/cooleshow/base/widgets/SolveEditTextScrollClash.java

@@ -4,13 +4,17 @@ import android.view.MotionEvent;
 import android.view.View;
 import android.widget.EditText;
 
+import com.cooleshow.base.utils.LOG;
+
+import androidx.core.widget.NestedScrollView;
+
 /**
  * Author by pq, Date on 2023/11/10.
  */
 public class SolveEditTextScrollClash implements View.OnTouchListener{
-    private EditText editText;
+    private NestedScrollView editText;
 
-    public SolveEditTextScrollClash(EditText editText) {
+    public SolveEditTextScrollClash(NestedScrollView editText) {
         this.editText = editText;
     }
 
@@ -27,22 +31,25 @@ public class SolveEditTextScrollClash implements View.OnTouchListener{
     }
 
     /**
-     * EditText竖直方向能否够滚动
-     * @param editText  须要推断的EditText
+     * NestedScrollView竖直方向能否够滚动
+     * @param targetView  须要推断的EditText
      * @return  true:能够滚动   false:不能够滚动
      */
-    private boolean canVerticalScroll(EditText editText) {
+    private boolean canVerticalScroll(NestedScrollView targetView) {
         //滚动的距离
-        int scrollY = editText.getScrollY();
+        int scrollY = targetView.getScrollY();
+        LOG.i("scrollY:"+scrollY);
         //控件内容的总高度
-        int scrollRange = editText.getLayout().getHeight();
+        int scrollRange = targetView.getChildAt(0).getHeight();
+        LOG.i("控件子内容的总高度:"+scrollRange);
         //控件实际显示的高度
-        int scrollExtent = editText.getHeight() - editText.getCompoundPaddingTop() -editText.getCompoundPaddingBottom();
+        int scrollExtent = targetView.getHeight() - targetView.getPaddingTop() -targetView.getPaddingBottom();
+        LOG.i("控件实际显示的高度:"+scrollExtent);
         //控件内容总高度与实际显示高度的差值
         int scrollDifference = scrollRange - scrollExtent;
         if(scrollDifference == 0) {
             return false;
         }
-        return (scrollY > 0) || (scrollY < scrollDifference - 1);
+        return (scrollY > 0) || (scrollY < scrollDifference);
     }
 }

+ 2 - 0
student/src/main/java/com/cooleshow/student/adapter/LiveCourseListAdapter.java

@@ -11,6 +11,7 @@ import com.chad.library.adapter.base.module.BaseLoadMoreModule;
 import com.chad.library.adapter.base.module.LoadMoreModule;
 import com.chad.library.adapter.base.viewholder.BaseViewHolder;
 import com.cooleshow.base.utils.GlideUtils;
+import com.cooleshow.base.utils.StringUtils;
 import com.cooleshow.base.utils.TimeUtils;
 import com.cooleshow.base.utils.UiUtils;
 import com.cooleshow.student.R;
@@ -51,6 +52,7 @@ public class LiveCourseListAdapter extends BaseQuickAdapter<LiveCourseListBean.R
         if (TextUtils.isEmpty(courseIntroduce)) {
             courseIntroduce = "暂无介绍";
         }
+        courseIntroduce = StringUtils.replaceSpace(courseIntroduce);
         holder.setText(R.id.tv_des, courseIntroduce);
 
 

+ 24 - 20
student/src/main/java/com/cooleshow/student/ui/course/PianoCourseGroupDetailActivity.java

@@ -30,6 +30,7 @@ import com.cooleshow.base.utils.ToastUtil;
 import com.cooleshow.base.utils.UiUtils;
 import com.cooleshow.base.utils.helper.QMUIStatusBarHelper;
 import com.cooleshow.base.widgets.EmptyViewLayout;
+import com.cooleshow.base.widgets.SolveEditTextScrollClash;
 import com.cooleshow.base.widgets.dialog.CommonFilterDialog;
 import com.cooleshow.student.R;
 import com.cooleshow.student.adapter.PianoCourseGroupCourseListAdapter;
@@ -96,26 +97,8 @@ public class PianoCourseGroupDetailActivity extends BaseMVPActivity<AcPianoCours
         }
         initMidTitleToolBar(viewBinding.toolbarInclude.toolbar, "琴房课详情");
         viewBinding.toolbarInclude.toolbar.setBackgroundColor(Color.TRANSPARENT);
-        viewBinding.appBarLayout.addOnOffsetChangedListener(new AppBarLayoutStateChangeListener() {
-
-            @Override
-            public void onStateChanged(AppBarLayout appBarLayout, State state) {
-                switch (state) {
-                    case EXPANDED:    //展开
-                        switchTitleStyle(EXPAND_MODE);
-                        break;
-                    case COLLAPSED:    //折叠
-                        switchTitleStyle(COLLAP_MODE);
-                        break;
-                    case INTERMEDIATE: //中间状态
-                        if (lastState == State.COLLAPSED) {
-                            switchTitleStyle(EXPAND_MODE);
-                        }
-                        break;
-                }
-                lastState = state;
-            }
-        });
+        viewBinding.scCoursePlan.setOnTouchListener(new SolveEditTextScrollClash(viewBinding.scCoursePlan));
+        viewBinding.scCoursePlan.setVerticalScrollBarEnabled(true);
     }
 
     @Override
@@ -152,6 +135,27 @@ public class PianoCourseGroupDetailActivity extends BaseMVPActivity<AcPianoCours
         viewBinding.tvTime.setOnClickListener(this);
         viewBinding.tvCourseStatus.setOnClickListener(this);
         viewBinding.tvAgency.setOnClickListener(this);
+        viewBinding.appBarLayout.addOnOffsetChangedListener(new AppBarLayoutStateChangeListener() {
+
+            @Override
+            public void onStateChanged(AppBarLayout appBarLayout, State state) {
+                switch (state) {
+                    case EXPANDED:    //展开
+                        switchTitleStyle(EXPAND_MODE);
+                        break;
+                    case COLLAPSED:    //折叠
+                        switchTitleStyle(COLLAP_MODE);
+                        break;
+                    case INTERMEDIATE: //中间状态
+                        if (lastState == State.COLLAPSED) {
+                            switchTitleStyle(EXPAND_MODE);
+                        }
+                        break;
+                }
+                lastState = state;
+            }
+        });
+
         mAdapter.setOnItemClickListener(new OnItemClickListener() {
             @Override
             public void onItemClick(@NonNull BaseQuickAdapter<?, ?> adapter, @NonNull View view, int position) {

+ 24 - 20
student/src/main/java/com/cooleshow/student/ui/course/VIPOrInterestCourseGroupDetailActivity.java

@@ -30,6 +30,7 @@ import com.cooleshow.base.utils.ToastUtil;
 import com.cooleshow.base.utils.UiUtils;
 import com.cooleshow.base.utils.helper.QMUIStatusBarHelper;
 import com.cooleshow.base.widgets.EmptyViewLayout;
+import com.cooleshow.base.widgets.SolveEditTextScrollClash;
 import com.cooleshow.base.widgets.dialog.CommonFilterDialog;
 import com.cooleshow.student.R;
 import com.cooleshow.student.adapter.VIPCourseGroupDetailAdapter;
@@ -95,26 +96,8 @@ public class VIPOrInterestCourseGroupDetailActivity extends BaseMVPActivity<AcVi
         title = TextUtils.equals(courseType, Constants.VIP_COURSE_TAG) ? "VIP定制课详情" : "趣纠课详情";
         initMidTitleToolBar(viewBinding.toolbarInclude.toolbar, title);
         viewBinding.toolbarInclude.toolbar.setBackgroundColor(Color.TRANSPARENT);
-        viewBinding.appBarLayout.addOnOffsetChangedListener(new AppBarLayoutStateChangeListener() {
-
-            @Override
-            public void onStateChanged(AppBarLayout appBarLayout, State state) {
-                switch (state) {
-                    case EXPANDED:    //展开
-                        switchTitleStyle(EXPAND_MODE);
-                        break;
-                    case COLLAPSED:    //折叠
-                        switchTitleStyle(COLLAP_MODE);
-                        break;
-                    case INTERMEDIATE: //中间状态
-                        if (lastState == State.COLLAPSED) {
-                            switchTitleStyle(EXPAND_MODE);
-                        }
-                        break;
-                }
-                lastState = state;
-            }
-        });
+        viewBinding.scCoursePlan.setOnTouchListener(new SolveEditTextScrollClash(viewBinding.scCoursePlan));
+        viewBinding.scCoursePlan.setVerticalScrollBarEnabled(true);
     }
 
     @Override
@@ -151,6 +134,27 @@ public class VIPOrInterestCourseGroupDetailActivity extends BaseMVPActivity<AcVi
         viewBinding.tvTime.setOnClickListener(this);
         viewBinding.tvCourseStatus.setOnClickListener(this);
         viewBinding.tvAgency.setOnClickListener(this);
+        viewBinding.appBarLayout.addOnOffsetChangedListener(new AppBarLayoutStateChangeListener() {
+
+            @Override
+            public void onStateChanged(AppBarLayout appBarLayout, State state) {
+                switch (state) {
+                    case EXPANDED:    //展开
+                        switchTitleStyle(EXPAND_MODE);
+                        break;
+                    case COLLAPSED:    //折叠
+                        switchTitleStyle(COLLAP_MODE);
+                        break;
+                    case INTERMEDIATE: //中间状态
+                        if (lastState == State.COLLAPSED) {
+                            switchTitleStyle(EXPAND_MODE);
+                        }
+                        break;
+                }
+                lastState = state;
+            }
+        });
+
         mAdapter.setOnItemClickListener(new OnItemClickListener() {
             @Override
             public void onItemClick(@NonNull BaseQuickAdapter<?, ?> adapter, @NonNull View view, int position) {

+ 1 - 0
student/src/main/java/com/cooleshow/student/ui/main/NewHomeFragmentV2.java

@@ -474,6 +474,7 @@ public class NewHomeFragmentV2 extends BaseMVPFragment<FgNewHomeV2LayoutBinding,
         presenter.helpCenterContentList();
         mViewBinding.flCourseEnter.setVisibility(mRecentCourses != null ? View.VISIBLE : View.GONE);
         if (mRecentCourses != null) {
+            mViewBinding.tvLiveTitle.setText(mRecentCourses.courseGroupName);
             String currentTime = TimeUtils.date2String(new Date(System.currentTimeMillis()), "yyyy-MM-dd");
             String startTime = TimeUtils.date2String(
                     TimeUtils.getDate(mRecentCourses.courseStartTime),

+ 19 - 11
student/src/main/res/layout/ac_piano_course_group_detail_layout.xml

@@ -227,21 +227,29 @@
                             app:layout_constraintLeft_toLeftOf="parent"
                             app:layout_constraintTop_toTopOf="parent" />
 
-                        <TextView
-                            android:id="@+id/tv_plan_content"
-                            android:layout_width="0dp"
-                            android:layout_height="wrap_content"
+                        <androidx.core.widget.NestedScrollView
+                            android:id="@+id/sc_course_plan"
                             android:layout_marginTop="12dp"
-                            android:ellipsize="end"
-                            android:includeFontPadding="false"
-                            android:maxLines="4"
-                            android:textColor="@color/color_777777"
-                            android:textSize="@dimen/sp_13"
                             app:layout_constraintLeft_toLeftOf="parent"
                             app:layout_constraintRight_toRightOf="parent"
                             app:layout_constraintTop_toBottomOf="@+id/tv_plan_title"
-                            tools:text="中国院长笛四级考级曲目教学中国院长笛四级考级曲目" />
-
+                            app:layout_constraintHeight_max="88dp"
+                            android:scrollbars="vertical"
+                            android:scrollbarStyle="insideOverlay"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content">
+                            <TextView
+                                android:id="@+id/tv_plan_content"
+                                android:layout_width="match_parent"
+                                android:layout_height="wrap_content"
+                                android:includeFontPadding="false"
+                                android:textColor="@color/color_777777"
+                                android:textSize="@dimen/sp_13"
+                                app:layout_constraintLeft_toLeftOf="parent"
+                                app:layout_constraintRight_toRightOf="parent"
+                                app:layout_constraintTop_toBottomOf="@+id/tv_plan_title"
+                                tools:text="中国院长笛四级考级曲目教学中国院长笛四级考级曲目" />
+                        </androidx.core.widget.NestedScrollView>
                     </androidx.constraintlayout.widget.ConstraintLayout>
                 </androidx.constraintlayout.widget.ConstraintLayout>
             </com.google.android.material.appbar.CollapsingToolbarLayout>

+ 19 - 10
student/src/main/res/layout/ac_vip_or_interest_course_group_detail_layout.xml

@@ -227,20 +227,29 @@
                             app:layout_constraintLeft_toLeftOf="parent"
                             app:layout_constraintTop_toTopOf="parent" />
 
-                        <TextView
-                            android:id="@+id/tv_plan_content"
-                            android:layout_width="0dp"
-                            android:layout_height="wrap_content"
+                        <androidx.core.widget.NestedScrollView
+                            android:id="@+id/sc_course_plan"
                             android:layout_marginTop="12dp"
-                            android:ellipsize="end"
-                            android:includeFontPadding="false"
-                            android:maxLines="4"
-                            android:textColor="@color/color_777777"
-                            android:textSize="@dimen/sp_13"
                             app:layout_constraintLeft_toLeftOf="parent"
                             app:layout_constraintRight_toRightOf="parent"
                             app:layout_constraintTop_toBottomOf="@+id/tv_plan_title"
-                            tools:text="中国院长笛四级考级曲目教学中国院长笛四级考级曲目" />
+                            app:layout_constraintHeight_max="88dp"
+                            android:scrollbars="vertical"
+                            android:scrollbarStyle="insideOverlay"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content">
+                            <TextView
+                                android:id="@+id/tv_plan_content"
+                                android:layout_width="match_parent"
+                                android:layout_height="wrap_content"
+                                android:includeFontPadding="false"
+                                android:textColor="@color/color_777777"
+                                android:textSize="@dimen/sp_13"
+                                app:layout_constraintLeft_toLeftOf="parent"
+                                app:layout_constraintRight_toRightOf="parent"
+                                app:layout_constraintTop_toBottomOf="@+id/tv_plan_title"
+                                tools:text="中国院长笛四级考级曲目教学中国院长笛四级考级曲目" />
+                        </androidx.core.widget.NestedScrollView>
 
                     </androidx.constraintlayout.widget.ConstraintLayout>
                 </androidx.constraintlayout.widget.ConstraintLayout>

+ 2 - 0
teacher/src/main/java/com/cooleshow/teacher/adapter/LiveCourseListAdapter.java

@@ -9,6 +9,7 @@ import com.chad.library.adapter.base.module.BaseLoadMoreModule;
 import com.chad.library.adapter.base.module.LoadMoreModule;
 import com.chad.library.adapter.base.viewholder.BaseViewHolder;
 import com.cooleshow.base.utils.GlideUtils;
+import com.cooleshow.base.utils.StringUtils;
 import com.cooleshow.base.utils.TimeUtils;
 import com.cooleshow.base.utils.UiUtils;
 import com.cooleshow.teacher.R;
@@ -47,6 +48,7 @@ public class LiveCourseListAdapter extends BaseQuickAdapter<LiveCourseListBean.R
         if (TextUtils.isEmpty(courseIntroduce)) {
             courseIntroduce = "暂无介绍";
         }
+        courseIntroduce = StringUtils.replaceSpace(courseIntroduce);
         holder.setText(R.id.tv_des, courseIntroduce);
 
         TextView tvCourseStatusBt = holder.getView(R.id.tv_course_status);

+ 0 - 3
teacher/src/main/java/com/cooleshow/teacher/adapter/MineLiveCourseAdapter.java

@@ -57,9 +57,6 @@ public class MineLiveCourseAdapter extends BaseQuickAdapter<MineLiveCourseListBe
         } else {
             tv_student_count.setVisibility(View.VISIBLE);
         }
-        //课程时间
-        TextView tv_date = helper.getView(R.id.tv_date);
-        tv_date.setText(TextUtils.isEmpty(item.courseStartTime) ? "" : TimeUtils.date2String(TimeUtils.string2Date(item.courseStartTime), "yyyy-MM-dd HH:mm"));
         //课程价格
         TextView tv_price = helper.getView(R.id.tv_price);
         tv_price.setText(UiUtils.getLiveCoursePriceText(item.coursePrice, item.courseNum));

+ 24 - 20
teacher/src/main/java/com/cooleshow/teacher/ui/course/PianoCourseGroupDetailActivity.java

@@ -31,6 +31,7 @@ import com.cooleshow.base.utils.ToastUtil;
 import com.cooleshow.base.utils.UiUtils;
 import com.cooleshow.base.utils.helper.QMUIStatusBarHelper;
 import com.cooleshow.base.widgets.EmptyViewLayout;
+import com.cooleshow.base.widgets.SolveEditTextScrollClash;
 import com.cooleshow.base.widgets.dialog.CommonFilterDialog;
 import com.cooleshow.teacher.R;
 import com.cooleshow.teacher.adapter.MineCoursePageAdapter;
@@ -89,26 +90,8 @@ public class PianoCourseGroupDetailActivity extends BaseMVPActivity<AcPianoCours
     protected void initView() {
         initMidTitleToolBar(viewBinding.toolbarInclude.toolbar, "琴房课详情");
         viewBinding.toolbarInclude.toolbar.setBackgroundColor(Color.TRANSPARENT);
-        viewBinding.appBarLayout.addOnOffsetChangedListener(new AppBarLayoutStateChangeListener() {
-
-            @Override
-            public void onStateChanged(AppBarLayout appBarLayout, State state) {
-                switch (state) {
-                    case EXPANDED:    //展开
-                        switchTitleStyle(EXPAND_MODE);
-                        break;
-                    case COLLAPSED:    //折叠
-                        switchTitleStyle(COLLAP_MODE);
-                        break;
-                    case INTERMEDIATE: //中间状态
-                        if (lastState == State.COLLAPSED) {
-                            switchTitleStyle(EXPAND_MODE);
-                        }
-                        break;
-                }
-                lastState = state;
-            }
-        });
+        viewBinding.scCoursePlan.setOnTouchListener(new SolveEditTextScrollClash(viewBinding.scCoursePlan));
+        viewBinding.scCoursePlan.setVerticalScrollBarEnabled(true);
     }
 
     @Override
@@ -143,6 +126,27 @@ public class PianoCourseGroupDetailActivity extends BaseMVPActivity<AcPianoCours
     private void initListener() {
         viewBinding.viewAddPlan.setOnClickListener(this);
         viewBinding.tvEditPlan.setOnClickListener(this);
+        viewBinding.appBarLayout.addOnOffsetChangedListener(new AppBarLayoutStateChangeListener() {
+
+            @Override
+            public void onStateChanged(AppBarLayout appBarLayout, State state) {
+                switch (state) {
+                    case EXPANDED:    //展开
+                        switchTitleStyle(EXPAND_MODE);
+                        break;
+                    case COLLAPSED:    //折叠
+                        switchTitleStyle(COLLAP_MODE);
+                        break;
+                    case INTERMEDIATE: //中间状态
+                        if (lastState == State.COLLAPSED) {
+                            switchTitleStyle(EXPAND_MODE);
+                        }
+                        break;
+                }
+                lastState = state;
+            }
+        });
+
         viewBinding.tablayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
             @Override
             public void onTabSelected(TabLayout.Tab tab) {

+ 25 - 20
teacher/src/main/java/com/cooleshow/teacher/ui/course/VIPOrInterestCourseGroupDetailActivity.java

@@ -33,6 +33,7 @@ import com.cooleshow.base.utils.ToastUtil;
 import com.cooleshow.base.utils.UiUtils;
 import com.cooleshow.base.utils.helper.QMUIStatusBarHelper;
 import com.cooleshow.base.widgets.EmptyViewLayout;
+import com.cooleshow.base.widgets.SolveEditTextScrollClash;
 import com.cooleshow.base.widgets.dialog.CommonFilterDialog;
 import com.cooleshow.teacher.R;
 import com.cooleshow.teacher.adapter.VIPCourseGroupDetailAdapter;
@@ -100,26 +101,8 @@ public class VIPOrInterestCourseGroupDetailActivity extends BaseMVPActivity<AcVi
         title = TextUtils.equals(courseType, Constants.VIP_COURSE_TAG) ? "VIP定制课详情" : "趣纠课详情";
         initMidTitleToolBar(viewBinding.toolbarInclude.toolbar, title);
         viewBinding.toolbarInclude.toolbar.setBackgroundColor(Color.TRANSPARENT);
-        viewBinding.appBarLayout.addOnOffsetChangedListener(new AppBarLayoutStateChangeListener() {
-
-            @Override
-            public void onStateChanged(AppBarLayout appBarLayout, State state) {
-                switch (state) {
-                    case EXPANDED:    //展开
-                        switchTitleStyle(EXPAND_MODE);
-                        break;
-                    case COLLAPSED:    //折叠
-                        switchTitleStyle(COLLAP_MODE);
-                        break;
-                    case INTERMEDIATE: //中间状态
-                        if (lastState == State.COLLAPSED) {
-                            switchTitleStyle(EXPAND_MODE);
-                        }
-                        break;
-                }
-                lastState = state;
-            }
-        });
+        viewBinding.scCoursePlan.setOnTouchListener(new SolveEditTextScrollClash(viewBinding.scCoursePlan));
+        viewBinding.scCoursePlan.setVerticalScrollBarEnabled(true);
     }
 
     @Override
@@ -158,6 +141,28 @@ public class VIPOrInterestCourseGroupDetailActivity extends BaseMVPActivity<AcVi
         viewBinding.tvTime.setOnClickListener(this);
         viewBinding.tvCourseStatus.setOnClickListener(this);
         viewBinding.tvAgency.setOnClickListener(this);
+
+        viewBinding.appBarLayout.addOnOffsetChangedListener(new AppBarLayoutStateChangeListener() {
+
+            @Override
+            public void onStateChanged(AppBarLayout appBarLayout, State state) {
+                switch (state) {
+                    case EXPANDED:    //展开
+                        switchTitleStyle(EXPAND_MODE);
+                        break;
+                    case COLLAPSED:    //折叠
+                        switchTitleStyle(COLLAP_MODE);
+                        break;
+                    case INTERMEDIATE: //中间状态
+                        if (lastState == State.COLLAPSED) {
+                            switchTitleStyle(EXPAND_MODE);
+                        }
+                        break;
+                }
+                lastState = state;
+            }
+        });
+
         mAdapter.setOnItemClickListener(new OnItemClickListener() {
             @Override
             public void onItemClick(@NonNull BaseQuickAdapter<?, ?> adapter, @NonNull View view, int position) {

+ 1 - 0
teacher/src/main/java/com/cooleshow/teacher/ui/main/NewHomeFragmentV2.java

@@ -315,6 +315,7 @@ public class NewHomeFragmentV2 extends BaseMVPFragment<FgNewHomeV2LayoutBinding,
         presenter.helpCenterContentList();
         mViewBinding.flCourseEnter.setVisibility(mRecentCourses != null ? View.VISIBLE : View.GONE);
         if (mRecentCourses != null) {
+            mViewBinding.tvLiveTitle.setText(mRecentCourses.courseGroupName);
             String currentTime = TimeUtils.date2String(new Date(System.currentTimeMillis()), "yyyy-MM-dd");
             String startTime = TimeUtils.date2String(
                     TimeUtils.getDate(mRecentCourses.courseStartTime),

+ 3 - 0
teacher/src/main/res/layout/ac_piano_course_group_detail_layout.xml

@@ -275,6 +275,9 @@
 
                         <androidx.core.widget.NestedScrollView
                             android:layout_marginTop="12dp"
+                            android:id="@+id/sc_course_plan"
+                            android:scrollbars="vertical"
+                            android:isScrollContainer="true"
                             app:layout_constraintLeft_toLeftOf="parent"
                             app:layout_constraintRight_toRightOf="parent"
                             app:layout_constraintTop_toBottomOf="@+id/tv_plan_title"

+ 3 - 0
teacher/src/main/res/layout/ac_vip_or_interest_course_group_detail_layout.xml

@@ -274,11 +274,14 @@
                             app:layout_constraintTop_toTopOf="@+id/tv_plan_title" />
 
                         <androidx.core.widget.NestedScrollView
+                            android:id="@+id/sc_course_plan"
                             android:layout_marginTop="12dp"
                             app:layout_constraintLeft_toLeftOf="parent"
                             app:layout_constraintRight_toRightOf="parent"
                             app:layout_constraintTop_toBottomOf="@+id/tv_plan_title"
                             app:layout_constraintHeight_max="88dp"
+                            android:scrollbars="vertical"
+                            android:scrollbarStyle="insideOverlay"
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content">
                             <TextView