直播系統平臺搭建,主播個性標籤顯示在id後面

zhibo系統開發發表於2021-10-18

直播系統平臺搭建,主播個性標籤顯示在id後面實現的相關程式碼

具體實現

1.1文字限制一行時,標籤在文字後面

文字較少時就像第一行這樣,文字較多顯示不下時就像二三行那樣省略。

實現方法一,使用線性佈局實現

<LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="不寬度,不確定字數"
                android:singleLine="true"
                />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="跟隨標籤"
                android:background="@color/yellow_FF9B52"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="跟隨標籤2"
                android:background="@color/blue_74D3FF"/>
        </LinearLayout>

實現方法二,使用約束佈局實現

<androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <TextView
                android:id="@+id/refund_name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:singleLine="true"
                android:text="長資料長資料長資料長資料長資料長資料長資料長資料長資料"
                app:layout_constrainedWidth="true"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintHorizontal_bias="0"
                app:layout_constraintHorizontal_chainStyle="packed"
                app:layout_constraintLeft_toLeftOf="parent"
                app:layout_constraintRight_toLeftOf="@id/refund_mark_num"
                app:layout_constraintTop_toTopOf="parent" />
            <TextView
                android:id="@+id/refund_mark_num"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@color/yellow_FF9B52"
                android:text="跟隨標籤"
                android:gravity="center"
                app:layout_constrainedWidth="true"
                app:layout_constraintLeft_toRightOf="@+id/refund_name"
                app:layout_constraintRight_toRightOf="parent"
                app:layout_constraintTop_toTopOf="parent" />
        </androidx.constraintlayout.widget.ConstraintLayout>

1.2標籤在文字前面時

實現思路和上面標籤在文字後面一樣。第一行的標籤是一個控制元件,標籤後面的文字是一個單獨的 TextView,第二行也是一個單獨的 TextView。如果想限制文字行數,直接對第二行的 TextView 限制就行。

xml 佈局:

 <!--        前面跟隨標籤-->
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="前面跟隨標籤"
            android:textColor="@color/white"
            android:background="@color/red"
            />
        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginHorizontal="@dimen/m15">
            <TextView
                android:id="@+id/tv_rl_test_tagFront"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="標籤"
                android:background="@color/yellow_FF9B52"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintStart_toStartOf="parent"/>
            <com.kiwilss.xview.widget.textview.AlignTextView
                android:id="@+id/tv_rl_test_frontOne"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:text="任意顯示一行任意顯示一行任意顯示一行任意顯示一行任意顯示一行"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintStart_toEndOf="@+id/tv_rl_test_tagFront"
                android:maxLines="1"
                />
            <com.kiwilss.xview.widget.textview.AlignTextView
                android:id="@+id/tv_rl_test_frontTwo"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="任意顯示一行任意顯示一行任意顯示一行任意顯示一行任意顯示一行"
                app:layout_constraintTop_toBottomOf="@+id/tv_rl_test_tagFront"/>
        </androidx.constraintlayout.widget.ConstraintLayout>

activity 部分:

  //前面加標籤
        TextView tvFront = (TextView) findViewById(R.id.tv_rl_test_tagFront);
        TextView tvFrontOne =  findViewById(R.id.tv_rl_test_frontOne);
        TextView tvFrontTwo =  findViewById(R.id.tv_rl_test_frontTwo);
        tvFrontOne.setText(tagSrc);
        //獲取tvFrontOne顯示的內容
        tvFrontOne.post(new Runnable() {
            @Override
            public void run() {
                //獲取第一行顯示的內容
                String lineContent = Utils.INSTANCE.getTextLineContent(tvFrontOne, 0, tagSrc);
                if (TextUtils.equals(lineContent,tagSrc)){
                    //一行可以完整顯示
                    tvFrontTwo.setVisibility(View.GONE);
                }else {
                    //需要多行才能顯示
                    tvFrontTwo.setVisibility(View.VISIBLE);
                    String nextContent = tagSrc.substring(lineContent.length(), tagSrc.length());
                    tvFrontTwo.setText(nextContent);
                }
            }
        });


以上就是直播系統平臺搭建,主播個性標籤顯示在id後面實現的相關程式碼, 更多內容歡迎關注之後的文章


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2837879/,如需轉載,請註明出處,否則將追究法律責任。

相關文章