我正在我的活动上实施一个ActionBar。我试图将此作为AndroidAnnotaions @EViewGroup组件,但由于某种原因,我无法在我的活动中看到该组件。该项目编译得很好。
我的代码基本上就像下面的
actionbar.xml
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="@dimen/action_bar_height"
android:layout_width="match_parent"
>
<ImageButton
android:id="@+id/back"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/back_button"
/>
<!-- Rest of the views omitted -->
</RelativeLayout>
ActionBar.java
@EViewGroup( R.layout.actionbar )
public class ActionBar extends RelativeLayout {
private Context mContext;
public ActionBar( Context aContext, AttributeSet aAttributeSet ) {
super( aContext );
mContext = aContext;
}
// @Click listener methods omitted
这就是我在另一种布局XML
中使用它的方式<jandy.android.ActionBar_
android:id="@+id/actionbar"
android:layout_width="match_parent"
android:layout_height="@dimen/action_bar_height"
/>
根据AA文件,这就是所需要的。但如上所述,没有任何可见的东西。
感谢。
答案 0 :(得分:1)
我认为您需要实现具有不同参数的构造函数:
public CustomActionbarComponent(Context context) {
super(context);
}
public CustomActionbarComponent(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CustomActionbarComponent(Context context, AttributeSet attrs, int defStyle) {
super(context);
}
也许从xml创建的自定义视图使用另一个构造函数。这是您的代码和我的工作自定义操作栏的唯一区别。
希望它有所帮助!