【发布时间】:2015-11-21 15:29:18
【问题描述】:
我正在使用 AA,并且想为纵向和横向指定两个不同的 xml 布局文件。
在我的 java 类中,标记为 EActivity 提供了一个用 @Click 注释的方法来响应点击事件。
在纵向模式下一切正常。但是当手机旋转时,布局发生变化,按钮不再响应。
我的猜测是@EActivity注解后提供的布局是纵向布局。
如何同时提供纵向和横向布局?
提前致谢。
更新 我使用两个不同的布局文件来“监听”方向变化,一个用于纵向,名为 layout/contact.xml,另一个用于横向,名为 layout-land/contact.xml。 Android 会完成剩下的工作并根据手机方向使用正确的布局。
要为点击事件注册监听器,我使用 Android Annotations:
contact.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:background="#000000"
android:layout_height="match_parent">
<include
layout="@layout/header_layout" />
<!-- Some elements -->
</LinearLayout>
header_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:background="#000000"
android:layout_height="60dp">
<ImageButton
android:id="@+id/menuHome"
android:layout_width="25dp"
android:src="@drawable/menu"
android:paddingTop="22dp"
android:paddingBottom="22dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_gravity="center"
android:background="#00000000"
android:scaleType="fitCenter"
android:layout_height="match_parent" />
<!-- Other buttons -->
</LinearLayout>
contact.java
@EActivity(R.layout.activity_contact)
public class ContactActivity extends TopLevelActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public String getPageTitle() {
return "Nous contacter";
}
}
** TopLevelActivity.java **
@EActivity
public abstract class TopLevelActivity extends Activity implements ITopLevelActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Click
public void menuHome () {
startActivity(new Intent(this, HomeActivity_.class));
}
}
【问题讨论】:
-
您如何收听方向变化以及何时注册视图以进行点击收听?添加此代码以便我们提供更好的帮助。
标签: java android android-annotations