我希望TextView在横向滚动,但在纵向显示为全高。 如果更改TextView的高度,则将获得滚动条,但同时获得横向和纵向方向的滚动条,请参见屏幕截图:
在纵向模式下,有足够的空间将TextView拉伸到最大高度。
但是,如果我将TextView纵向拉伸至最大高度(显示整个内容),则该文本在横向将与其他元素重叠(请参阅情况2),或者如果我将其移动,则文本视觉,并且不会有任何滚动条使文本可滚动(请参阅情况3)。
我想要实现的是,横向的TextView类似于情况1(带有滚动条),而纵向的情况类似于2情况(完整内容)。
是否可以在不使用Java代码的情况下实现它?还是应该使用if / else陈述式?
答案 0 :(得分:0)
首先尝试获取屏幕方向,然后根据当前方向显示或隐藏textview滚动条
int orientation = this.getResources().getConfiguration().orientation;
if (orientation == Configuration.ORIENTATION_PORTRAIT) {
// code for portrait mode
textview.setVerticalScrollBarEnabled(false);
} else {
// code for landscape mode
textview.setVerticalScrollBarEnabled(true);
}
如果您仅对活动使用一种布局,也可以将其添加到活动中
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
}
答案 1 :(得分:0)
您可以通过创建两个布局资源文件夹来使用XML,其中一个用于纵向,另一个用于横向。 然后使用ScrollView封装XML,如下所示;
<ScrollView>
</ScrollView>
如果屏幕不能一次包含所有视图,则上述ScrollView包含的所有布局都可以在不同的屏幕尺寸上滚动。 注意:您在ScrollView中定义的XML是您真正的设计,ScrollView仅使布局和视图可滚动。 有关支持不同屏幕尺寸的更多信息,请参阅https://developer.android.com/training/multiscreen/screensizes