我创建了一个代表我的问题的小测试应用程序.我正在使用ActionBarSherlock来实现带有(Sherlock)Fragments的选项卡.
我的代码:
TestActivity.java
public class TestActivity extends SherlockFragmentActivity {
private ActionBar actionBar;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setupTabs(savedInstanceState);
}
private void setupTabs(Bundle savedInstanceState) {
actionBar = getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
addTab1();
addTab2();
}
private void addTab1() {
Tab tab1 = actionBar.newTab();
tab1.setTag("1");
String tabText = "1";
tab1.setText(tabText);
tab1.setTabListener(new TabListener<MyFragment>(TestActivity.this, "1", MyFragment.class));
actionBar.addTab(tab1);
}
private void addTab2() {
Tab tab1 = actionBar.newTab();
tab1.setTag("2");
String tabText = "2";
tab1.setText(tabText);
tab1.setTabListener(new TabListener<MyFragment>(TestActivity.this, "2", MyFragment.class));
actionBar.addTab(tab1);
}
}
Run Code Online (Sandbox Code Playgroud)
TabListener.java
public class TabListener<T extends SherlockFragment> …
Run Code Online (Sandbox Code Playgroud) 我使用actionbarsherlock.下面的代码片段负责将其背景更改为自定义代码.
<style name="Widget.Styled.ActionBar" parent="Widget.Sherlock.ActionBar">
<item name="background">@drawable/actionbar_bg</item>
<item name="android:background">@drawable/actionbar_bg</item>
<...>
</style>
<style name="Theme.MyApp" parent="@style/Theme.Sherlock.Light">
<item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
<item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
<..>
</style>
Run Code Online (Sandbox Code Playgroud)
它适用于actionbarsherlock(在蜂窝下面的版本).但是在ICS中,我在动作栏下面有一个阴影,我不想要.什么样的项目让它消失?
ActionBarSherlock和Action Bar兼容性有什么区别
几天前谷歌刚刚发布了令我如此困惑的ActionBar兼容性.操作栏兼容性是否与ActionBarSherlock相同,编码是否相同?
java android actionbarsherlock android-actionbar android-actionbar-compat
是否有Android标准徽章或方法来显示带有Google示例的计数的操作栏通知图标?
如果没有,那么最好的方法是什么呢?
我是android的新手,请帮忙.
notifications icons android actionbarsherlock android-actionbar
我有一个应用程序,包括在选项卡模式下使用ActionBarSherlock.我有5个选项卡,每个选项卡的内容使用片段处理.但是对于tab2,我有一个片段,其xml文件包含一个ViewPager元素,该元素又包含一些片段页面.当我最初启动应用程序的应用程序时,我能够在选项卡之间切换没有问题,但是当我第二次按下tab2时,我得到上面提到的错误.主要活动如下:
public class MainActivity extends SherlockFragmentActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ActionBar actionBar = getSupportActionBar();
ActionBar.Tab tab1 = actionBar.newTab().setText("Tab1");
ActionBar.Tab tab3 = actionBar.newTab().setText("Tab3");
ActionBar.Tab tab2 = actionBar.newTab().setText("Tab2");
ActionBar.Tab tab4 = actionBar.newTab().setText("Tab4");
ActionBar.Tab tab5 = actionBar.newTab().setText("Tab5");
Fragment fragment1 = new Tab1();
Fragment fragment3 = new Tab3();
Fragment fragment2 = new Tab2();
Fragment fragment5 = new Tab5();
Fragment fragment4 = new Tab4();
tab1.setTabListener(new MyTabListener(fragment1));
tab3.setTabListener(new MyTabListener(fragment3));
tab2.setTabListener(new MyTabListener(fragment2));
tab5.setTabListener(new MyTabListener(fragment5));
tab4.setTabListener(new MyTabListener(fragment4));
actionBar.addTab(tab1);
actionBar.addTab(tab2);
actionBar.addTab(tab3);
actionBar.addTab(tab4);
actionBar.addTab(tab5);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); …
Run Code Online (Sandbox Code Playgroud) android android-fragments android-viewpager actionbarsherlock android-nested-fragment
我想在操作栏中显示自定义搜索(我正在使用ActionBarSherlock).
我明白了:
但我想让自定义布局(edittext字段)占用整个可用宽度.
我按照这里的建议实现了自定义布局.
有我的自定义布局search.xml
:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
style="?attr/actionButtonStyle"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_gravity="fill_horizontal"
android:focusable="true" >
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|fill_horizontal" >
<EditText
android:id="@+id/search_query"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="left|center"
android:background="@drawable/bg_search_edit_text"
android:imeOptions="actionSearch"
android:inputType="text" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right|center_vertical"
android:src="@drawable/ic_search_arrow" />
</FrameLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
并在MyActivity
:
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setIcon(R.drawable.ic_action_search);
LayoutInflater inflator = (LayoutInflater) this .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflator.inflate(R.layout.search, null);
actionBar.setCustomView(v);
Run Code Online (Sandbox Code Playgroud)
如何使自定义布局占用所有可用宽度actionBar
?
请帮忙.
我一直在寻找适合我问题的解决方案,但我似乎找不到一个.我有一个ActionBar(ActionBarSherlock),其菜单从XML文件中膨胀,该菜单包含一个项目,并且该项目显示为ActionItem.
菜单:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/menu_refresh"
android:icon="@drawable/ic_menu_refresh"
android:showAsAction="ifRoom"
android:title="Refresh"/>
</menu>
Run Code Online (Sandbox Code Playgroud)
活动:
[...]
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getSupportMenuInflater().inflate(R.menu.mymenu, menu);
return true;
}
[...]
Run Code Online (Sandbox Code Playgroud)
ActionItem显示时带有图标而没有文本,但是当用户点击ActionItem时,我希望图标开始动画,更具体地说,是在适当的位置旋转.有问题的图标是刷新图标.
我意识到ActionBar支持使用自定义视图(添加动作视图)但是这个自定义视图被扩展为覆盖ActionBar的整个区域并且实际上阻止了除应用程序图标之外的所有内容,在我的情况下这不是我想要的.
所以我的下一次尝试是尝试使用AnimationDrawable并逐帧定义我的动画,将drawable设置为菜单项的图标,然后在onOptionsItemSelected(MenuItem item)
获取图标并开始使用动画((AnimationDrawable)item.getIcon()).start()
.但这并不成功.有谁知道有任何方法来实现这种效果?
在Android中,我在模拟器和某些移动设备中遇到以下错误但在平板电脑中没有:
我无法理解实际上是什么错误?
我搜索了很多教程,但找不到任何解决方案.
请帮我解决这个问题.
注意:在这个应用程序中,我使用了ActionbarSherlock和主题,可能是因为该库或任何其他问题?
我的错误日志是:
09-11 17:52:57.342: E/AndroidRuntime(9935): FATAL EXCEPTION: main
09-11 17:52:57.342: E/AndroidRuntime(9935): android.view.InflateException: Binary XML file line #2: Error inflating class <unknown>
09-11 17:52:57.342: E/AndroidRuntime(9935): at android.view.LayoutInflater.createView(LayoutInflater.java:613)
09-11 17:52:57.342: E/AndroidRuntime(9935): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
09-11 17:52:57.342: E/AndroidRuntime(9935): at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660)
09-11 17:52:57.342: E/AndroidRuntime(9935): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685)
09-11 17:52:57.342: E/AndroidRuntime(9935): at android.view.LayoutInflater.inflate(LayoutInflater.java:466)
09-11 17:52:57.342: E/AndroidRuntime(9935): at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
09-11 17:52:57.342: E/AndroidRuntime(9935): at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:371)
09-11 17:52:57.342: E/AndroidRuntime(9935): at android.widget.ArrayAdapter.getView(ArrayAdapter.java:362)
09-11 17:52:57.342: E/AndroidRuntime(9935): at android.widget.AbsSpinner.onMeasure(AbsSpinner.java:193)
09-11 17:52:57.342: …
Run Code Online (Sandbox Code Playgroud) android android-emulator android-layout android-theme actionbarsherlock
如何onClickListener
为Action Bar的Home按钮实现自定义?
我已经做了一个getSupportActionBar().setDisplayHomeAsUpEnabled(true);
,现在我想将用户重定向到某个活动,以防点击Home按钮.
我尝试过:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
item.setOnMenuItemClickListener(new OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
Intent i = new Intent();
i.setClass(BestemmingActivity.this, StartActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
return true;
}
});
default:
return super.onOptionsItemSelected(item);
}
}
Run Code Online (Sandbox Code Playgroud)
但它永远不会进入onMenuItemClick
.
基本上,它就像在这个链接中一样,但它仍然没有进入监听器.
android android-intent onitemclicklistener actionbarsherlock
我需要同时显示icon
和title
行动中ActionBar
.
我试过" withText
"选项,但它没有效果.
android android-ui android-layout actionbarsherlock android-actionbar