我正在使用Appcompat v22为AutoCompleteTextView使用着色样式.但是,只要我从这里更改了build.gradle:
compile 'com.android.support:support-v4:21.0.3'
compile 'com.android.support:appcompat-v7:21.0.3'
compile 'com.android.support:cardview-v7:21.0.2'
compile 'com.android.support:recyclerview-v7:21.0.2'
Run Code Online (Sandbox Code Playgroud)
对此:
compile 'com.android.support:support-v4:22.0.0'
compile 'com.android.support:appcompat-v7:22.0.0'
compile 'com.android.support:gridlayout-v7:22.0.0'
compile 'com.android.support:cardview-v7:22.0.0'
Run Code Online (Sandbox Code Playgroud)
ActionBarDrawerToggle图标(汉堡图标)丢失了.(但是,如果我从左侧滑动,抽屉会显露出来)
在onCreate()里面:
mDrawerLayout = (BBDrawerLayout) findViewById(R.id.drawer_layout);
mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
R.string.drawer_open, R.string.drawer_close) {
@Override
public void onDrawerClosed(View drawerView) {
super.onDrawerClosed(drawerView);
toolbar.setTitle(mTitle);
invalidateOptionsMenu();
}
@Override
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
trackEvent(TrackingAware.MENU_SHOWN, null);
toolbar.setTitle(mDrawerTitle);
invalidateOptionsMenu();
}
};
mDrawerLayout.setDrawerListener(mDrawerToggle);
Run Code Online (Sandbox Code Playgroud)
还调用了syncState()
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
if (mDrawerToggle != null) {
mDrawerToggle.syncState();
}
}
@Override
public void onConfigurationChanged(Configuration newConfig) …Run Code Online (Sandbox Code Playgroud) 我有一个菜单项在android 4.x上显示但不在2.x上显示.这是我的menu.xml
<?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/menu_filter"
android:title="Filter"
app:showAsAction="always"/>
</menu>
Run Code Online (Sandbox Code Playgroud)
这是我的动作栏样式
<style name="style1_actionBar" parent="@style/Widget.AppCompat.Light.ActionBar">
<item name="android:background">@color/blue_dark</item>
<item name="android:textColor">@color/white</item>
<item name="actionMenuTextAppearance">@color/white</item>
<item name="background">@color/blue_dark</item>
</style>
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
编辑:删除双引号拼写错误
可能是因为我只显示文字,没有图标吗?我有点被困在这里.
我整个下午都花了这么多时间.我已经下载了Eclipse,下载了SDK,安装了更新,但每个新的Android项目我创建了一些错误.
首先,它根本不会生成R.java文件,现在它确实生成了但是有一个单独的项目,它自动创建名为appcompat_v7.我不知道这是什么,但它导致任何其他新项目的问题.
这是正常项目产生的错误:容器'Android Dependencies'引用非现有库'/home/omar/workspace/appcompat_v7/bin/appcompat_v7.jar'
我完全不知道如何解决这个问题.是什么造成的?
编辑它似乎只有KitKat,每个其他API平台根本不生成任何源文件....任何想法如何打击这个?



我的PreferenceFragmentCompat的内部PreferenceScreen没有显示,或者似乎忽略了点击事件.
我创造了MyPreferenceFragment那个extends PreferenceFragmentCompat
public class MyPreferenceFragment extends PreferenceFragmentCompat {
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
addPreferencesFromResource(R.xml.preferences);
}
}
Run Code Online (Sandbox Code Playgroud)
然后,我改变了我的主题,在styles.xml像
<style name="AppTheme" parent="@style/Theme.AppCompat.Light">
<item name="preferenceTheme">@style/PreferenceThemeOverlay</item>
</style>
Run Code Online (Sandbox Code Playgroud)
最后创建我的preferences.xml文件
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<CheckBoxPreference android:title="Check Me"/>
<PreferenceScreen android:title="My Screen"> <!-- This is not opening -->
<EditTextPreference android:title="Edit text" />
</PreferenceScreen>
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)
在build.gradle我添加了两个:
compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.android.support:preference-v7:23.0.1'
Run Code Online (Sandbox Code Playgroud)
活动的代码
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
Run Code Online (Sandbox Code Playgroud)
activity_main.xml中 …
android android-appcompat android-support-library preference-v7
我想支持至少api 10,我希望能够很好地设置我的偏好,我希望能够有标题(或显示PreferenceScreens).似乎PreferenceActivity不完全支持AppCompat着色,不适合.所以我正在尝试使用AppCompatActivity和PreferenceFragmentCompat.
public class Prefs extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState == null)
getSupportFragmentManager().beginTransaction()
.replace(android.R.id.content, new PreferencesFragment())
.commit();
}
public static class PreferencesFragment extends PreferenceFragmentCompat {
@Override public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
@Override
public void onDisplayPreferenceDialog(Preference preference) {
// the following call results in a dialogue being shown
super.onDisplayPreferenceDialog(preference);
}
@Override public void onNavigateToScreen(PreferenceScreen preferenceScreen) {
// I can probably …Run Code Online (Sandbox Code Playgroud) android android-appcompat android-preferences android-support-library
我有一个非常奇怪的问题,我无法弄清楚.直到最近我才成为问题,但我似乎无法回复以防止它.另一个奇怪的事情是它适用于某些设备而其他设备则不适用.
问题是动画.特别是小吃店.小吃店应该上下动画,但事实并非如此.它只是显示然后隐藏.查看下面的视频以查看问题.
这是用于为小吃店设置动画的Android代码
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
ViewCompat.setTranslationY(mView, mView.getHeight());
ViewCompat.animate(mView)
.translationY(0f)
.setInterpolator(FAST_OUT_SLOW_IN_INTERPOLATOR)
.setDuration(ANIMATION_DURATION)
.setListener(new ViewPropertyAnimatorListenerAdapter() {
@Override
public void onAnimationStart(View view) {
mView.animateChildrenIn(ANIMATION_DURATION - ANIMATION_FADE_DURATION,
ANIMATION_FADE_DURATION);
}
@Override
public void onAnimationEnd(View view) {
onViewShown();
}
}).start();
}
Run Code Online (Sandbox Code Playgroud)
它使用ViewCompat作为v4库.我有其他动画在另一个活动工作正常.此外,问题不在于其中的所有活动.这让我以某种方式思考它的系统.但它们都使用不同的内部主题,但都扩展了Theme.AppCompat.NoActionBar.
这是我的主要布局
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:elevation="4dp">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:titleTextAppearance="@style/ToolbarTitle"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:layout_scrollFlags="scroll|enterAlways|snap"/>
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabTextAppearance="@style/TabText"
app:tabMinWidth="@dimen/tab_minwidth"
app:tabMode="fixed"
app:tabGravity="fill"
app:layout_scrollFlags="enterAlways"/>
</android.support.design.widget.AppBarLayout>
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" >
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
<fr.castorflex.android.circularprogressbar.CircularProgressBar
android:id="@+id/base_progressSpinner"
android:layout_gravity="center" …Run Code Online (Sandbox Code Playgroud) 我正在尝试ActionBar在我的应用程序中使用Android ,并且有一个隐藏在溢出菜单中的选项.
那里有很多文档,但它令人困惑,因为它大部分只与非常旧的Android版本相关,当你尝试应用相同的概念时,它们不再起作用或工作方式不同.
这是我的Activity布局
<android.support.v7.widget.Toolbar
android:id="@+id/my_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:titleTextColor="@android:color/white"
android:background="@color/colorPrimary"
android:elevation="4dp"
android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
Run Code Online (Sandbox Code Playgroud)
这是我Activity的onCreate()方法
// sets up activity toolbar
Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar);
setSupportActionBar(myToolbar);
myToolbar.showOverflowMenu();
myToolbar.setTitleTextColor(R.color.lightPrimaryText);
Run Code Online (Sandbox Code Playgroud)
我也尝试过膨胀一个菜单xml文件onCreateOptionsMenu(),但这也没有给我我想要的结果.
我已尝试更新com.android.support:appcompat并com.android.support:design从:25.0.1 更新到25.1.0,如下所示:
compile 'com.android.support:appcompat-v7:25.0.1'
compile 'com.android.support:design:25.0.1'
Run Code Online (Sandbox Code Playgroud)
至:
compile 'com.android.support:appcompat-v7:25.1.0'
compile 'com.android.support:design:25.1.0'
Run Code Online (Sandbox Code Playgroud)
但我发现当活动滚动时我的浮动动作按钮不再出现.我的FAB行为由以下定义:
public class MyFabBehavior extends FloatingActionButton.Behavior {
public MyFabBehavior(Context context, AttributeSet attrs) {
super();
}
@Override
public boolean onStartNestedScroll(CoordinatorLayout coordinatorLayout,
FloatingActionButton child, View directTargetChild, View target, int nestedScrollAxes) {
// Ensure we react to vertical scrolling
return nestedScrollAxes == ViewCompat.SCROLL_AXIS_VERTICAL
|| super.onStartNestedScroll(coordinatorLayout, child, directTargetChild, target, nestedScrollAxes);
}
@Override
public void onNestedScroll(CoordinatorLayout coordinatorLayout, FloatingActionButton child,
View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed) { …Run Code Online (Sandbox Code Playgroud) 请有人帮帮我!我尝试将appcompat搜索视图添加到我的项目中.不成功.当我将android.support.v7.widget.SearchView更改为SearchView(API> 10)时,一切都很好.
我的菜单res:
<item android:id="@+id/action_search"
android:title="@string/search_view_title"
android:icon="@drawable/action_search"
sabd:showAsAction="always|collapseActionView"
sabd:actionViewClass="android.support.v7.widget.SearchView" />
Run Code Online (Sandbox Code Playgroud)
这是我如何尝试使用SeachView:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.teach, menu);
mSearchItem = menu.findItem(R.id.action_search);
mSearchItem.setVisible(true);
mSearchView = (SearchView) MenuItemCompat.getActionView(mSearchItem);
mSearchView.setQueryHint(getString(R.string.search_view_hint));
mSearchView.setOnQueryTextListener(this);
}
Run Code Online (Sandbox Code Playgroud)
这是我的清单文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="ru.rgups.time"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/Theme.Base.AppCompat.Light"
android:name="RTApplication">
<activity
android:name="ru.rgups.time.MainActivity"
android:configChanges="orientation|keyboardHidden"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".fragments.WelcomeActivity"></activity>
<service android:name=".spice.SampleSpiceService"></service>
<activity …Run Code Online (Sandbox Code Playgroud) 我想android.app.ProgressDialog在我的应用程序中为Lollipop前版本设置所有s的样式,使它们看起来像Material Design.
也许我错过了一些明显的东西:我正在寻找android.support.v7.app.ProgressDialog,但Android AppCompat库中没有这样的类.
我应该ProgressDialog从头开始编写自己的实现吗?它不包含在AppCompat库中的原因是什么?