2016-05-30 2 views
0

Je souhaite définir la hauteur, la largeur et la marge de la vue de défilement et la définir sous la vue de texte et à droite de la disposition relative. J'ai essayé de définir uniquement la hauteur de la vue de défilement de façon dynamique. Mais comment définir la marge de vue de défilement et la façon de le garder programme à:Comment définir une vue de défilement par programme dans Android?

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

Voici mon code 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> ................ 

Et voici mon code d'activité qui est fixé de façon dynamique la hauteur.

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

Répondre

2

Voici mon exemple

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); 
+0

Merci de répondre. Ça aide à bien. – tazeenmulani