【问题标题】:TextView scrollable in landscape but shown in full height in portrait orientationTextView 可横向滚动,但纵向显示为全高
【发布时间】:2018-09-23 16:05:16
【问题描述】:

我希望我的 TextView 在横向可滚动,但在纵向以全高显示。 如果我改变 TextView 的高度,我会得到滚动条,但我会在横向和纵向都得到它,看截图:

纵向有足够的空间将 TextView 拉伸到全高。

但是,如果我将纵向方向的 TextView 拉伸到其全高(显示整个内容),则文本将与横向方向的其他元素重叠(参见情况 2),或者如果我移动它,它将超出并且不会有任何滚动条使文本可滚动(参见情况 3)。

我想要实现的是横向方向的 TextView 就像情况 1(带有滚动)和纵向方向的情况 2(完整内容)一样。

是否可以不使用 java 代码来实现它?还是应该使用 if/else 语句?

【问题讨论】:

  • 为横向和纵向模式制作不同的 xml 文件

标签: android scroll textview


【解决方案1】:

先尝试获取屏幕方向,然后根据当前方向,显示或隐藏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); 
}

如果您的 Activity 仅使用一个布局,请将其添加到您的 Activity 中

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
}

【讨论】:

    【解决方案2】:

    您可以通过创建两个布局资源文件夹来使用 XML 执行此操作——一个用于纵向,另一个用于横向。 然后用 ScrollView 包装你的 XML,如下所示;

    <ScrollView>
    </ScrollView>
    

    如果屏幕不能同时包含所有视图,则上述 ScrollView 包含的所有布局都可以在不同的屏幕尺寸上滚动。 注意:您在此 ScrollView 中定义的 XML 是您真正的设计,ScrollView 仅使布局和视图可滚动。 更多支持不同屏幕尺寸的信息,可以参考https://developer.android.com/training/multiscreen/screensizes

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-29
      • 1970-01-01
      • 1970-01-01
      • 2014-02-07
      • 2013-01-08
      • 1970-01-01
      • 2013-10-23
      • 2013-03-08
      相关资源
      最近更新 更多