导言:我们在用到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);

}

});

}

}

布局文件:

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

android:id="@+id/btn"

android:layout_width="wrap_content"

android:layout_height="48dp"

android:layout_gravity="center"

android:text="调整" />

android:id="@+id/ll"

android:layout_width="match_parent"

android:layout_height="80dp">

android:id="@+id/sv"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="#dddddd">

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_margin="10dp"

android:text="aaaaaaaaaaaaaa\naaaaaaaaaaaaaaaa\naaaabbbbbbbbbbbbb\nbbbbbbbbbbbbbb\nbbbbbbbcccccccccccccccc\nccccccccccccc\nccccccccccccccccccccccccccccccc

eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee" />

————————————————

版权声明:本文为CSDN博主「weixin_38125090」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_38125090/article/details/79135443

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐