我正在开发这个在webview中检索网页的Android应用程序,我在屏幕顶部有这个横幅。它在纵向布局中并不明显,但在横向上,它几乎占据了屏幕的上半部分。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/header"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#EAC117"
android:textSize="35sp" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@raw/firstintentlogo"
android:layout_weight="1" android:contentDescription="@string/headLogoName"/>
</LinearLayout>
我不知道如何在java文件中说“当手机处于横向模式时,隐藏此linearLayout。”
有什么建议吗?
答案 0 :(得分:3)
在您的活动覆盖onConfigurationChanged
@Override
public void onConfigurationChanged(Configuration newConfig)
{
if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE)
{
//TODO
}
super.onConfigurationChanged(newConfig);
}
答案 1 :(得分:2)
如果您自己处理更改,可以将其添加到onConfigurationChanged()
以将Layout
的{{1}}设置为visibility
。
如果您让操作系统处理配置更改,那么您可以创建以根据方向分隔gone
。您将layouts
用于纵向放在layout
文件夹中,然后创建另一个名为layout
的文件夹,以便操作系统知道在设备处于横向状态时使用该文件夹中的layout-land
layout
。
Using configuration qualifiers
在大多数情况下,文档不推荐答案 2 :(得分:1)
试试这个
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
//check config
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
linearLayout.setVisibility(View.GONE); //set visibility of linearLayout as Gone
Toast.makeText(this, "mode landscape", Toast.LENGTH_SHORT).show();
}
}
希望这有效