【问题标题】:Right corner menu option右上角菜单选项
【发布时间】:2015-01-12 22:45:10
【问题描述】:

我无法为标题栏设置背景图像,我只能设置颜色,让我知道我必须在下面的代码中更改什么。 我想要一个精确的下图 1 副本,我得到的输出如图 2 所示

    <ImageView
        android:id="@+id/header"
        android:background="@drawable/ic_launcher"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="ShowRoom"
        android:textColor="@android:color/black"
        android:textStyle="bold"/>

    <ImageView
        android:id="@+id/header1"
        android:drawableRight="@drawable/menu"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />
</LinearLayout>

还有我的活动 java 文件

public class ItemActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

        setContentView(R.layout.itemlist);

        getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.item);
    }
}

和styles.xml

<style name="TitleBarTheme" parent="android:Theme">
            <item name="android:windowTitleSize">35dip</item>
            <item name="android:windowTitleBackgroundStyle">@style/CustomWindowTitleBarBG</item>
        </style>

【问题讨论】:

  • @Mike Guys 请删除保留标签,我已经编辑了我的问题
  • 你的意思是你需要在ActionBar中放置一个自定义图标和ActionBar下的一些文字?
  • 你能把你想要的东西画在纸上或其他东西上,然后把它的图片贴出来,以便我能适当地帮助你吗?

标签: android


【解决方案1】:

至于文字对齐,应该这样做

<TextView android:id="@+id/left_text"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:layout_centerHorizontal="true"
    android:text="ShowRoom" />

对于ActionBar,首先将xml自定义布局添加到您的布局文件夹中,如下所示: custom_actionbar_layout

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >

<TextView
    android:id="@+id/action_bar_title"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:textColor="#ffffff"
    android:gravity="center"
    android:text="@string/app_name"
    android:textAppearance="?android:textAppearanceLarge"
    android:ellipsize="end"
    android:padding="5dp"
    android:maxLines="1"
    />
</LinearLayout>

在你的活动中:

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.Layout.xyz);
    initUI();
}
private void initUI(){
    ActionBar mActionBar = getSupportActionBar();

    mActionBar.setDisplayShowHomeEnabled(false);
    mActionBar.setIcon(R.drawable.ic_launcher);
    mActionBar.setDisplayShowCustomEnabled(true);
    mActionBar.setCustomView(R.layout.custom_actionbar_layout);
}

至于 ActionBar 右侧的那个菜单图标,它被称为 MenuItem,尝试使用“onCreateOptionsMenu”膨胀菜单并将其 xml 中的 showAsAction 设置为您想要的任何内容,例如将 xml 添加到 res/menu 文件夹,如下所示:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

<item
    android:id="@+id/ContctUs"
    android:orderInCategory="100"
    android:showAsAction="collapseActionView|withText"
    android:title="@string/ContactUs"
    android:icon="@drawable/ic_action_info"/>

<item
    android:id="@+id/skin1"
    android:orderInCategory="101"
    android:showAsAction="collapseActionView|withText"
    android:title="@string/skin1"
    android:visible="false"
    android:icon="@android:drawable/ic_menu_view"/>

在您的活动中:

@Override
public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
    new MenuInflater(this).inflate(R.menu.main, menu);
    return super.onCreateOptionsMenu(menu);
}
@Override
  public boolean onOptionsItemSelected(MenuItem item) {
      if (item.getItemId() == R.id.ContctUs) {
        startActivity(new Intent(this,ContactUs.class));
      return(true);
      }else if(...){...}
      return super.onOptionsItemSelected(item);
  }

希望这可行。 笔记: 此方法用于 Pre-L 设计,如果要针对 android-L,请考虑使用 Toolbar。(support.v7.widget.Toolbar)

【讨论】:

  • 我需要为图片中显示的整个标题设置背景图片,并使最后一张图片可点击
  • 我希望布局已显示在我的主要问题中,图像文本和可点击图像这些项目位于标题栏中,并且在标题栏下方我必须显示一些已显示的文本
  • 好的,如果你在图片中显示的是你想要的,你应该考虑在你的应用程序中使用工具栏,这是你知道的处理菜单的android设计规范。我很快就会给你一些代码
  • 我需要自定义这个
  • 你的目标是 android 5x 还是 android 4x ?
猜你喜欢
  • 2017-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-12
  • 1970-01-01
  • 2013-12-22
  • 2011-09-13
相关资源
最近更新 更多