如何在Android中以编程方式设置滚动视图?

时间:2016-05-30 06:12:44

标签: android

我想设置滚动视图的高度,宽度,边距,并设置在文本视图下方和相对布局的右侧。我试图动态设置滚动视图的高度。但是如何设置滚动视图的边距以及如何以编程方式保存它:

        android:layout_below="@+id/item_textInspectorName"
        android:layout_toRightOf="@+id/rel_out_two"

这是我的XML代码

<RelativeLayout> ................
  <ScrollView
            android:id="@+id/scrollExpand"
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_below="@+id/item_textInspectorName"
            android:layout_toRightOf="@+id/rel_out_two"
            android:layout_marginLeft="7.5dp"
            android:layout_marginRight="10dp"
            android:layout_marginTop="6dp"

            android:background="@android:color/white"
            android:fillViewport="true">

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent">

                <com.example.tazeen.classnkk.ExpandableTextView
                    android:id="@+id/expandable_text"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:ellipsize="end"
                    android:text="expand"
                    android:textColor="@android:color/black"
                    android:textSize="12sp"
                    android:textStyle="normal" />
            </LinearLayout>
        </ScrollView>

</RelativeLayout> ................

这是我的活动代码,它动态设置高度。

ExpandableTextView txtRemark = (ExpandableTextView)findViewById(R.id.expandable_text);
        int strRemarkLength = strRemark.length();
        if(strRemarkLength > 100)
        {
            txtRemark.setText(strRemark.concat(" ...Less"));
            Log.e("", " Lesss !!!");
            scrollView.setLayoutParams(new RelativeLayout.LayoutParams(
                    RelativeLayout.LayoutParams.FILL_PARENT, 350));
        }
        else
        {
            txtRemark.setText(strRemark);
            Log.e("", "Not Lesss !!!");
        }

1 个答案:

答案 0 :(得分:2)

这是我的样本

MainActivity.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/colorAccent"
        android:gravity="center">

        <TextView
            android:id="@+id/top_textview"
            android:layout_width="match_parent"
            android:layout_height="80dp"
            android:text="Top Text" />

        <TextView
            android:id="@+id/left_textview"
            android:layout_width="100dp"
            android:layout_height="match_parent"
            android:layout_below="@+id/top_textview"
            android:text="Left Text"/>

            <ScrollView
                android:id="@+id/scrollExpand"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="#ffffff"
                android:fillViewport="true">

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:gravity="center"
                    android:orientation="vertical">

                    <TextView
                        android:id="@+id/expandable_text"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:text="expand"
                        android:textColor="@android:color/black"
                        android:textSize="12sp"
                        android:textStyle="normal" />
                </LinearLayout>
            </ScrollView>
    </RelativeLayout>

MainActivity.Java

ScrollView scrollView = (ScrollView) findViewById(R.id.scrollExpand);
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 300);
    params.setMargins(20, 20, 20, 20);
    params.addRule(RelativeLayout.BELOW, R.id.top_textview);
    params.addRule(RelativeLayout.RIGHT_OF, R.id.left_textview);
    scrollView.setLayoutParams(params);