这个问题已在这里被多次提出,但我找不到任何帮助.我正在编写一个Android应用程序,似乎在ActionBar上创建选项卡时遇到问题.我一直在寻找问题几个小时似乎无法找到解决方案,但我认为我确实找到了源.我甚至已经清空了实现只是为了获得一些结果并在它们的基础上构建,但是我没有发现任何东西.
这是创建选项卡片段并插入操作栏
// put ActionBar to nav. mode
ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
// init "YES" tab
Fragment yesTabFragment = Fragment.instantiate(this, YesTabFragment.class.getName());
FlowTabListener yesTabListener = new FlowTabListener(yesTabFragment);
ActionBar.Tab yesTab = actionBar.newTab().setText("YES").setTabListener(yesTabListener);
actionBar.addTab(yesTab);
Run Code Online (Sandbox Code Playgroud)
这是该类的onCreateView方法
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
_fragmentView = inflater.inflate(R.layout.yes_fragment, container);
}
Run Code Online (Sandbox Code Playgroud)
这是片段XML布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,实现是空的,我没有在这段时间之前(而不是之后)实例化这个片段但是我得到这个错误:
E/AndroidRuntime(2995): FATAL EXCEPTION: main
E/AndroidRuntime(2995): java.lang.RuntimeException: Unable to start activity ComponentInfo{activities.MainActivity}:
java.lang.IllegalStateException: The specified child already has a parent. You …Run Code Online (Sandbox Code Playgroud) 我想强制将图标放在Android的分割操作栏的底栏中,同时确保顶部操作栏保持为空.我已经做了很多实验,但还是没能弄清楚如何做到这一点.
我确信这是可能的,因为我已经在Google地图应用中看到了它.见下图:
我正在使用ABS库开发一个应用程序.在两个fragmentActivities中,我需要在Actionbar中使用自定义视图.我的代码在ICS和JB中非常完美.但我在姜饼中测试并坠毁.
我的代码是下一个:
public class SearchContactActivity extends SherlockFragmentActivity {
private EditText searchField;
private ImageButton searchButton;
@Override
protected void onCreate(Bundle arg0) {
super.onCreate(arg0);
setContentView(R.layout.search_contacts);
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
View view = actionBar.getCustomView();//ICS & JB return the View OK, lower versions returns null
searchField = (EditText) view.findViewById(R.id.editText_search);//here the app crash because view is null
searchButton = (ImageButton) view.findViewById(R.id.button_search);
}
}
Run Code Online (Sandbox Code Playgroud)
我的主题XML:
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="Theme.Styled.Search" parent="Theme.Sherlock.Light">
<item name="actionBarStyle">@style/Widget.Styled.ActionBar.Search</item>
<item name="android:actionBarStyle">@style/Widget.Styled.ActionBar.Search</item>
</style>
<style name="Widget.Styled.ActionBar.Search" parent="Widget.Sherlock.Light.ActionBar">
<item name="background">@drawable/bg_actionbar</item>
<item name="android:background">@drawable/bg_actionbar</item>
<item …Run Code Online (Sandbox Code Playgroud) 我想要处理其中一个菜单项(我用XML声明这个).
<item android:id="@+id/menu_shape_shifter"
android:title="@string/menu_search"
android:icon="@drawable/ic_action_refresh"
android:orderInCategory="0"
android:visible="true"
android:showAsAction="always" />
Run Code Online (Sandbox Code Playgroud)
所以我这样做,
MenuItem item_shape_shifter = (MenuItem)findViewById(R.id.menu_shape_shifter);
但它失败并出现异常:ClassCastException:com.android.internal.view.menu.ActionMenuItemView无法强制转换为android.view.MenuItem.
如果没有获得此菜单项的句柄,我无法继续.但是,找不到任何线索.
注意:我正在使用Action Bar兼容包,因为我支持的版本<3.0
android handle menuitem classcastexception android-actionbar
我想将actionbar的标题颜色更改为白色.我在样式上声明:
<!--
Base application theme, dependent on API level. This theme is replaced
by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
-->
<style name="AppBaseTheme" parent="android:Theme.Holo.Light">
<!--
Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here.
-->
</style>
<!-- Application theme -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
<item name="android:windowActionBar">true</item>
<item name="android:actionBarStyle">@style/ProjActionBar</item>
<item name="android:actionBarTabTextStyle">@style/ProjActionBar.TitleTextStyle</item>
</style>
<!-- ActionBar Style -->
<style …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用ActionBarSherlock在我的操作栏中通过调整此处的代码来实现取消/完成布局.
一切都按照预期在ICS或Jelly Bean上运行(ABS将使用本机ActionBar).在Gingerbread(API 10)上进行测试时,除了按钮之间没有显示分隔符外,一切正常:

我起初认为这是分频器图像的问题,但即使使用如下代码:
android:divider="#f00"
Run Code Online (Sandbox Code Playgroud)
Gingerbread上没有出现分隔符,但正如预期的那样,在ICS/JB上出现了一个鲜红色的分隔符.显然,ActionBarSherlock 3.5+使用本机行为进行分隔符外观,那么为什么在使用ABS时分隔符不会出现但在使用本机ActionBar时会出现?
这是我的XML:
actionbar_custom_view_done_discard.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="?attr/dividerVertical"
android:dividerPadding="12dp"
android:orientation="horizontal"
android:showDividers="middle" >
<include layout="@layout/actionbar_cancel_button" />
<include layout="@layout/actionbar_done_button" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
actionbar_cancel_button.xml
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/actionbar_cancel"
style="?actionButtonStyle"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/abs__item_background_holo_light" >
<TextView
style="?actionBarTabTextStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:drawableLeft="@drawable/ic_action_cancel"
android:drawablePadding="8dp"
android:gravity="center_vertical"
android:paddingRight="20dp"
android:text="@string/action_cancel" />
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)
actionbar_done_button.xml与上面的完全相同,但更改了名称,文本和图标.
提前致谢.
xml android android-layout actionbarsherlock android-actionbar
whatsapp如何实现其动作栏?最新的更新版本包含动作栏,它在android 2.2和android 4.1上完美运行,没有任何差异.有什么想法他们如何实现向后兼容?后退按钮适用于Android 2.2,我无法通过任何方式工作.
我正在使用ActionBarSherlock,我想设置主页按钮的动画,告诉用户点击它.我想使用三个不同的图像来显示动画.
我怎样才能做到这一点?
我想在Android操作栏上添加一个没有预选选项的下拉菜单.更确切地说,我希望箭头位于操作栏上应用程序的图标旁边.到目前为止,代码是:
protected void onCreate(Bundle savedInstanceState) {
.
.
.
ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
SpinnerAdapter spinnerAdapter = ArrayAdapter.createFromResource(this, R.array.logo_options,
android.R.layout.simple_spinner_dropdown_item);
actionBar.setListNavigationCallbacks(spinnerAdapter, null);
}
Run Code Online (Sandbox Code Playgroud)
如何摆脱操作栏上的文字?
我有这个代码:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
MenuItem searchItem = menu.findItem(R.id.action_search);
SearchView searchView = (SearchView) MenuItemCompat
.getActionView(searchItem);
searchView.setQueryHint("Search");
searchView.setOnQueryTextListener(this);
return true;
}
Run Code Online (Sandbox Code Playgroud)
它有SearchView.要打开SearchView,应单击循环图标.如何让它在开始时自动打开?
android ×10
android-tabs ×1
android-ui ×1
handle ×1
menuitem ×1
searchview ×1
whatsapp ×1
xml ×1