如何在Android操作栏中获取标签
正如标题所示,我想在操作栏中添加一些文本。首先,这是一个我想象中的模型(用油漆!): 我真的很挣扎。在我的活动中,我提出:如何在Android操作栏中获取标签,android,android-actionbar,Android,Android Actionbar,正如标题所示,我想在操作栏中添加一些文本。首先,这是一个我想象中的模型(用油漆!): 我真的很挣扎。在我的活动中,我提出: @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main_screen, menu); return true; } 在菜单文件夹中,我放入main_screen.xml: <?xml version="1.0" encod
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main_screen, menu);
return true;
}
在菜单文件夹中,我放入main_screen.xml:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/user_level"
android:title="Administrator"
android:showAsAction="withText" />
</menu>
所以我有两个问题:
问题1
为什么至少上面的解决方案没有显示文本Administrator
问题2
一旦它显示文本,我如何使它看起来像一个标签(灰色背景和圆角等)
谢谢您的帮助。问题1 您必须使用应用程序名称空间
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/user_level"
android:title="Administrator"
app:showAsAction="withText" />
</menu>
问题1 您必须使用应用程序名称空间
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/user_level"
android:title="Administrator"
app:showAsAction="withText" />
</menu>
您可以尝试在菜单项中添加以下代码:
android:showAsAction="always|withText"
android:orderInCategory="50"
50
只是一个随机数
您可以通过创建ActionBar主题样式来配置ActionBar样式和属性。更多信息请访问:
您可以尝试在菜单项中添加以下代码:
android:showAsAction="always|withText"
android:orderInCategory="50"
50
只是一个随机数
您可以通过创建ActionBar主题样式来配置ActionBar样式和属性。更多信息请访问:
第二个问题需要自定义菜单项 首先,您需要为菜单项创建自定义布局 cust_menu.xml
<TextView
android:id="@+id/admin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp"
android:text="Administrator"
android:textColor="#fff"
android:background="@drawable/my_shape";
android:textStyle="bold" />
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<corners android:radius="3dp" />
<solid android:color="#e3e3e3" />
</shape>
<item
android:id="@+id/admin"
android:actionLayout="@layout/cust_menu"
app:showAsAction="always">
</item>
现在您的菜单项将如下所示
main.xml
<TextView
android:id="@+id/admin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp"
android:text="Administrator"
android:textColor="#fff"
android:background="@drawable/my_shape";
android:textStyle="bold" />
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<corners android:radius="3dp" />
<solid android:color="#e3e3e3" />
</shape>
<item
android:id="@+id/admin"
android:actionLayout="@layout/cust_menu"
app:showAsAction="always">
</item>
如果有任何疑问,请告诉我
欲了解更多信息,请访问
编辑:
您可以通过这种方式访问TextView
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getSupportMenuInflater();
inflater.inflate(R.menu.main, menu);
View view = menu.findItem(R.id.admin).getActionView();
TextView textView = (TextView) view.findViewById(R.id.textID);
// do your stuff
return super.onCreateOptionsMenu(menu);
}
快乐编码。第二个问题需要自定义菜单项 首先,您需要为菜单项创建自定义布局 cust_menu.xml
<TextView
android:id="@+id/admin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp"
android:text="Administrator"
android:textColor="#fff"
android:background="@drawable/my_shape";
android:textStyle="bold" />
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<corners android:radius="3dp" />
<solid android:color="#e3e3e3" />
</shape>
<item
android:id="@+id/admin"
android:actionLayout="@layout/cust_menu"
app:showAsAction="always">
</item>
现在您的菜单项将如下所示
main.xml
<TextView
android:id="@+id/admin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp"
android:text="Administrator"
android:textColor="#fff"
android:background="@drawable/my_shape";
android:textStyle="bold" />
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<corners android:radius="3dp" />
<solid android:color="#e3e3e3" />
</shape>
<item
android:id="@+id/admin"
android:actionLayout="@layout/cust_menu"
app:showAsAction="always">
</item>
如果有任何疑问,请告诉我
欲了解更多信息,请访问
编辑:
您可以通过这种方式访问TextView
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getSupportMenuInflater();
inflater.inflate(R.menu.main, menu);
View view = menu.findItem(R.id.admin).getActionView();
TextView textView = (TextView) view.findViewById(R.id.textID);
// do your stuff
return super.onCreateOptionsMenu(menu);
}
快乐编码。在您的菜单项中尝试android:showAsAction=“always | withText”。然后尝试添加android:orderInCategory=“50”。50只是一个随机数。你是使用工具栏(新材料设计方式)还是操作栏?对于appcompat activity@Comeback4,你可以提供代码作为答案,而不是注释吗?对于工具栏示例,你可以看到这篇关于文本居中的文章。你可以很容易地把它改在右边。在菜单项中尝试android:showAsAction=“always | withText”。然后尝试添加android:orderInCategory=“50”。50只是一个随机数。你是使用工具栏(新材料设计方式)还是操作栏?对于appcompat activity@Comeback4,你可以提供代码作为答案,而不是注释吗?对于工具栏示例,你可以看到这篇关于文本居中的文章。你可以很容易地把它改在右边。您不能使用菜单。。。为什么不呢?这不是android:actionLayout的功能吗?你不能使用菜单。。。为什么不呢?这不是android:actionLayout的功能吗?这很酷,谢谢。一个问题;如何将标签的右边距设置为几像素?目前,它正对着屏幕的右边缘。这是您可以使用的自定义布局。将marging设置为textview,或将该textview包装在linearlayout或relativelayout中,并对其进行填充。我尝试将
android:layout\u marginRight=“5dp”
添加到textview中,但没有任何区别?然后尝试第二种方法。将其包装在其中一个布局中,并向其中添加android:paddingRight
。我相信它会成功的。谢谢你——成功了。最后一个问题,当用户点击标签时,我如何使标签的背景颜色变为黑色?这很酷,谢谢。一个问题;如何将标签的右边距设置为几像素?目前,它正对着屏幕的右边缘。这是您可以使用的自定义布局。将marging设置为textview,或将该textview包装在linearlayout或relativelayout中,并对其进行填充。我尝试将android:layout\u marginRight=“5dp”
添加到textview中,但没有任何区别?然后尝试第二种方法。将其包装在其中一个布局中,并向其中添加android:paddingRight
。我相信它会成功的。谢谢你——成功了。最后一个问题是,当用户点击标签时,如何使其背景颜色变为黑色?