如何在android中为纵向和横向模式定义不同的控件

时间:2013-01-31 13:41:49

标签: android android-layout

我的应用在纵向模式下有三个视图,一个TextSwitcher,一个自定义视图和一个自定义键盘。 在横向模式中,我需要删除TextSwitcher并在右侧添加ListView。 我是android的新手,我可以定义两个布局,即xxx和xxx-land,我的问题是如何实现两个代码分支,一个用于控制景观,一个用于肖像。

2 个答案:

答案 0 :(得分:3)

根据当前方向设置标志

getResources().getConfiguration().orientation

在访问textswitcher或listview之前检查标志...并根据标志采取行动,例如在纵向模式下对Textswitcher进行更改,但在横向上不要因为它将为null ...

答案 1 :(得分:1)

定义代码中两个资源文件中出现的所有视图 在onCreate()的{​​{1}}中,您可以检查方向以将视图绑定到类对象。

例如

这里我们有2个布局文件,在两个文件和纵向文件中都包含一个ImageView,有一个Activity,在横向上它包含TextView而不是Button < / p> layout-land 中的

my_layout.xml          

TextView
layout-port 文件夹中的

my_layout.xml          

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/abs__ab_bottom_solid_dark_holo" />

</LinearLayout>

这是活动代码

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/abs__ab_bottom_solid_dark_holo" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView" />

</LinearLayout>

询问任何你不理解的事情。