tazeenmulani tazeenmulani - 6 months ago 40
Android Question

How to set scroll view by programatically in Android?

I want to set the scroll view height , width , margin and set at below the text view and at the right of relative layout. I tried to set only height of scroll view dynamically.But how to set margin of scroll view and how to keep it Programatically at android:layout_below="@+id/item_textInspectorName"
android:layout_toRightOf="@+id/rel_out_two"
.Can someone help me .Thanks in advanced.

Here is my xml code

<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> ................


And here is my Activity code which is set the height of dynamically .

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 !!!");
}

Answer

Here is my sample

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);
Comments