新しいカスタム ボトム アクション バーを作成しようとしています。ビジュアルは問題ないように見えますが、(RelativeLayout から) 膨張した ImageView に onClick を追加すると、「メソッドが見つかりませんでした」というエラーがスローされます。以下の textOnClickTest メソッドでテストしています。
基本的に、アイコン間の間隔をカスタマイズしようとしています。ただし、onClickは機能していないようです。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
new MenuInflater(this).inflate(R.menu.activity_menu, menu);
RelativeLayout relativeLayout = (RelativeLayout) menu.findItem(R.id.search).getActionView();
View view2 = getLayoutInflater().inflate(R.layout.bottom_actionbar, null);
relativeLayout.addView(view2);
return true;
}
テスト機能:
public void textOnClickTest (){
System.out.println("prints stuff");
}
bottom_action.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/action_bottom"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ImageView
android:id="@+id/layers"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:onClick="textOnClickTest"
android:src="@drawable/layers_icon"/>
</RelativeLayout>
action_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:title="Search"
android:id="@+id/search"
android:actionLayout="@layout/bottom_actionbar"
android:icon="@drawable/layers_icon"
android:numericShortcut="1"
android:alphabeticShortcut="s"
android:showAsAction="always" />
<item
android:id="@+id/menuU"
android:icon="@drawable/social_group"
android:numericShortcut="2"
android:alphabeticShortcut="u"
android:showAsAction="always" />
</menu>
上部のアクションバー:
mActionBar = getActionBar();
mActionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME);
mActionBar.setDisplayShowHomeEnabled(false);
mActionBar.setDisplayShowTitleEnabled(false);
View view = View.inflate(getApplicationContext(), R.layout.just_text, null);
mActionBar.setCustomView(view);
just_text.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/action"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center"
android:clickable="true"
android:onClick="testOnClickText"
android:text="@string/app_name"
android:textSize="30sp"/>
</RelativeLayout>