TextView可横向滚动,但以纵向完整显示

时间:2018-09-23 16:05:17

标签: android scroll textview

我希望TextView在横向滚动,但在纵向显示为全高。 如果更改TextView的高度,则将获得滚动条,但同时获得横向和纵向方向的滚动条,请参见屏幕截图: enter image description here

在纵向模式下,有足够的空间将TextView拉伸到最大高度。

但是,如果我将TextView纵向拉伸至最大高度(显示整个内容),则该文本在横向将与其他元素重叠(请参阅情况2),或者如果我将其移动,则文本视觉,并且不会有任何滚动条使文本可滚动(请参阅情况3)。

enter image description here

enter image description here

我想要实现的是,横向的TextView类似于情况1(带有滚动条),而纵向的情况类似于2情况(完整内容)。

是否可以在不使用Java代码的情况下实现它?还是应该使用if / else陈述式?

2 个答案:

答案 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