Android建立顯示區高度可以調整的ScrollView
阿新 • • 發佈:2019-01-03
導言:我們在用到ScrollView時,有時候需要它的顯示區高度可以調整,比如一段話放到ScrollView中,當這段話只有一行時,我們設定ScrollView的高度為20;有兩行時,我們設定ScrollView的高度為40;有三行或更多行時,設定ScrollView的高度為60(超過三行後,自動出滾動條)
方法:將ScrollView放到一個LinearLayout中,將ScrollView的高度設定成match_parent,在程式碼中動態設定LinearLayout的高度,達到ScrollView高度動態通過Java程式碼設定的效果。
效果圖:
點選前
點選後
程式碼:
MainActivity.java:
public class MainActivity extends AppCompatActivity { Button btn; LinearLayout ll; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn = (Button) findViewById(R.id.btn); ll佈局檔案:= (LinearLayout) findViewById(R.id.ll); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) ll.getLayoutParams(); int llHeight = ll.getHeight(); if(llHeight == 80) { lp.height = 120; } else { lp.height = 80; } ll.setLayoutParams(lp); } }); } }
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <Button android:id="@+id/btn" android:layout_width="wrap_content" android:layout_height="48dp" android:layout_gravity="center" android:text="調整" /> <LinearLayout android:id="@+id/ll" android:layout_width="match_parent" android:layout_height="80dp"> <ScrollView android:id="@+id/sv" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#dddddd"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10dp" android:text="aaaaaaaaaaaaaa\naaaaaaaaaaaaaaaa\naaaabbbbbbbbbbbbb\nbbbbbbbbbbbbbb\nbbbbbbbcccccccccccccccc\nccccccccccccc\nccccccccccccccccccccccccccccccc eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee" /> </ScrollView> </LinearLayout> </LinearLayout>