1

我正在我的活动上实现一个 ActionBar。我正在尝试将其作为 AndroidAnotaions @EViewGroup 组件来执行,但由于某种原因,我在我的活动中看不到该组件。该项目编译得很好。

我的代码基本上如下所示

动作栏.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>

动作条.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 文档,这就是所有需要的。但正如所说,没有什么是可见的。

谢谢。

4

1 回答 1

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 创建的自定义视图使用另一个构造函数。这是您的代码和我的工作自定义操作栏的唯一区别。

希望能帮助到你!

于 2013-10-29T21:59:53.343 回答