1

アクティビティに ActionBar を実装しています。これを AndroidAnnotations @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 のドキュメントによると、必要なのはこれだけです。しかし、前述のとおり、何も表示されません。

ありがとう。

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 に答える