在 Activity 对话框中添加 OptionMenu
Add OptionMenu on Activity Dialog
我需要在 Activity 对话框中添加 Option Menu
或图标。 Option Menu
没有显示。我使用自定义主题制作自定义 Activity 对话框。我也使用了自定义标题。这是我的代码片段,以明确说明:
manifest.xml
<activity
android:name=".ModalActivity"
android:theme="@style/Theme.Custom.AlertDialog" />
style.xml
<style name="Theme.Custom.AlertDialog" parent="Theme.AppCompat">
<item name="android:windowFrame">@null</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowNoTitle">false</item>
</style>
ModalActivity.java
public class ModalActivity extends AppCompatActivity implements View.OnClickListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(getWindow().FEATURE_CUSTOM_TITLE);
setContentView(R.layout.modal_activity);
DisplayMetrics metrics = getResources().getDisplayMetrics();
int screenWidth = (int) (metrics.widthPixels * 0.90);
getWindow().setLayout(screenWidth, ViewGroup.LayoutParams.WRAP_CONTENT);
getWindow().setBackgroundDrawableResource(R.color.colorRedTheme);
this.setFinishOnTouchOutside(false);
getWindow().setFeatureInt(getWindow().FEATURE_CUSTOM_TITLE, R.layout.title_dialog_editor);
final TextView customTitle = (TextView) findViewById(R.id.title_text_dialog_editor);
if ( customTitle != null ) {
customTitle.setText("Modal Activity");
customTitle.setTextSize(20f);
customTitle.setPadding(5, 5, 5, 0);
customTitle.setBackgroundColor(Color.parseColor("#BA0B0B"));
customTitle.setTextColor(Color.WHITE);
}
setTitle("");
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.refresh:
return true;
}
return super.onOptionsItemSelected(item);
}
问题是菜单没有显示。我在这里搜索我的案例,但没有解决方案。
编辑
在图片下方,我需要在标题中添加一些Option Menu
但是Option Menu
没有显示
我建议您使用 Toolbar
来达到您的目的。这可能对您有所帮助
在 Layout.xml
中添加以下行
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:background="?attr/colorPrimary"
android:elevation="8dp"
android:minHeight="?attr/actionBarSize"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
这是给你的 styles.xml
<resources>
<!-- Base application theme. -->
<style name="Theme.Custom.AlertDialog" parent="Theme.AppCompat"">
<!-- Customize your theme here. -->
<!-- your app branding color for the app bar -->
<item name="colorPrimary">#3F51B5</item>
<!-- darker variant for the status bar and contextual app bars -->
<item name="colorPrimaryDark">#303F9F</item>
<!-- theme UI controls like checkboxes and text fields -->
<item name="colorAccent">#FF4081</item>
<item name="android:windowFrame">@null</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowNoTitle">false</item>
</style>
</resources>
最后在您的 ModalActivity.java 中添加以下几行 onCreate()
方法:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
您也可以参考this_blog以获得更多帮助和支持。
问候 :)
我需要在 Activity 对话框中添加 Option Menu
或图标。 Option Menu
没有显示。我使用自定义主题制作自定义 Activity 对话框。我也使用了自定义标题。这是我的代码片段,以明确说明:
manifest.xml
<activity
android:name=".ModalActivity"
android:theme="@style/Theme.Custom.AlertDialog" />
style.xml
<style name="Theme.Custom.AlertDialog" parent="Theme.AppCompat">
<item name="android:windowFrame">@null</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowNoTitle">false</item>
</style>
ModalActivity.java
public class ModalActivity extends AppCompatActivity implements View.OnClickListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(getWindow().FEATURE_CUSTOM_TITLE);
setContentView(R.layout.modal_activity);
DisplayMetrics metrics = getResources().getDisplayMetrics();
int screenWidth = (int) (metrics.widthPixels * 0.90);
getWindow().setLayout(screenWidth, ViewGroup.LayoutParams.WRAP_CONTENT);
getWindow().setBackgroundDrawableResource(R.color.colorRedTheme);
this.setFinishOnTouchOutside(false);
getWindow().setFeatureInt(getWindow().FEATURE_CUSTOM_TITLE, R.layout.title_dialog_editor);
final TextView customTitle = (TextView) findViewById(R.id.title_text_dialog_editor);
if ( customTitle != null ) {
customTitle.setText("Modal Activity");
customTitle.setTextSize(20f);
customTitle.setPadding(5, 5, 5, 0);
customTitle.setBackgroundColor(Color.parseColor("#BA0B0B"));
customTitle.setTextColor(Color.WHITE);
}
setTitle("");
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.refresh:
return true;
}
return super.onOptionsItemSelected(item);
}
问题是菜单没有显示。我在这里搜索我的案例,但没有解决方案。
编辑
在图片下方,我需要在标题中添加一些Option Menu
但是Option Menu
没有显示
我建议您使用 Toolbar
来达到您的目的。这可能对您有所帮助
在 Layout.xml
中添加以下行<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:background="?attr/colorPrimary"
android:elevation="8dp"
android:minHeight="?attr/actionBarSize"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
这是给你的 styles.xml
<resources>
<!-- Base application theme. -->
<style name="Theme.Custom.AlertDialog" parent="Theme.AppCompat"">
<!-- Customize your theme here. -->
<!-- your app branding color for the app bar -->
<item name="colorPrimary">#3F51B5</item>
<!-- darker variant for the status bar and contextual app bars -->
<item name="colorPrimaryDark">#303F9F</item>
<!-- theme UI controls like checkboxes and text fields -->
<item name="colorAccent">#FF4081</item>
<item name="android:windowFrame">@null</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowNoTitle">false</item>
</style>
</resources>
最后在您的 ModalActivity.java 中添加以下几行 onCreate()
方法:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
您也可以参考this_blog以获得更多帮助和支持。
问候 :)