在工具栏中调用导航图标单击 (android)
Call navigation icon click in toolbar (android)
我有以下代码:
setSupportActionBar(toolbar);
toolbar.setNavigationOnClickListener(onClickListener);
和XML:
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appBarLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:elevation="0dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.Toolbar
android:id="@+id/app_bar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:paddingStart="0dp"
android:paddingEnd="12dp"
app:contentInsetStart="0dp"
app:navigationIcon="@drawable/ic_menu_black_24dp"
app:title="@string/app_name" />
</com.google.android.material.appbar.AppBarLayout>
我想调用工具栏导航图标的点击,但是找不到方法。
我无法调用 onClickListener(null),因为我在 onClick 中更改了图标。
请尝试将 'number' 替换为图标索引。 (可能是 1-2-3-4 等)
toolbar.getChildAt(number).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//do whatever you want here
}
});
您可以为此使用 setNavigationOnClickListener {}。
// I used private function here, you don't need to.
private fun onBackArrowPressed() {
// when user clicked the navigation icon (here is back arrow)
binding.toolbar.setNavigationOnClickListener {
// find the nav controller and pop backstack
findNavController().popBackStack()
}
}
试试这个,
Toolbar toolbar;
toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
@Override
public boolean onSupportNavigateUp() {
onBackPressed();
return true;
}
我有以下代码:
setSupportActionBar(toolbar);
toolbar.setNavigationOnClickListener(onClickListener);
和XML:
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appBarLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:elevation="0dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.Toolbar
android:id="@+id/app_bar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:paddingStart="0dp"
android:paddingEnd="12dp"
app:contentInsetStart="0dp"
app:navigationIcon="@drawable/ic_menu_black_24dp"
app:title="@string/app_name" />
</com.google.android.material.appbar.AppBarLayout>
我想调用工具栏导航图标的点击,但是找不到方法。 我无法调用 onClickListener(null),因为我在 onClick 中更改了图标。
请尝试将 'number' 替换为图标索引。 (可能是 1-2-3-4 等)
toolbar.getChildAt(number).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//do whatever you want here
}
});
您可以为此使用 setNavigationOnClickListener {}。
// I used private function here, you don't need to.
private fun onBackArrowPressed() {
// when user clicked the navigation icon (here is back arrow)
binding.toolbar.setNavigationOnClickListener {
// find the nav controller and pop backstack
findNavController().popBackStack()
}
}
试试这个,
Toolbar toolbar;
toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
@Override
public boolean onSupportNavigateUp() {
onBackPressed();
return true;
}