你好.我试图改变SearchView文本输入光标颜色,我面临很多困难.我发现它取决于我在AppTheme中定义的colorAccent值,但我无法改变它,因为它会影响很多其他UI元素.当我尝试使用自己的colorAccent参数将自定义样式设置到我的工具栏时,没有任何变化,光标仍然是相同的颜色(非常接近工具栏,因此它似乎是不可见的).
我的工具栏
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/newsfeed_toolbar"
android:layout_width="match_parent"
android:visibility="visible"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
style="@style/SearchStyle"
app:titleTextAppearance="@style/toolbar_title_style"
popupTheme="@style/AppTheme.PopupOverlay" >
</android.support.v7.widget.Toolbar>
</android.support.design.widget.AppBarLayout>
Run Code Online (Sandbox Code Playgroud)
我的搜索菜单
<?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/newsfeed_search"
android:icon="@mipmap/ic_search"
app:showAsAction="always|collapseActionView"
app:actionViewClass="android.support.v7.widget.SearchView"
android:title="Search"/>
</menu>
Run Code Online (Sandbox Code Playgroud)
我的风格
<style name="SearchStyle" parent="@style/ThemeOverlay.AppCompat.ActionBar">
<item name="android:textCursorDrawable">@android:color/white</item>
<item name="android:colorAccent">@android:color/white</item>
</style>
活动代码
toolbar = (Toolbar) findViewById(R.id.newsfeed_toolbar);
setSupportActionBar(toolbar);
@Override
public boolean onCreateOptionsMenu( Menu menu) {
getMenuInflater().inflate( R.menu.menu, menu);
MenuItem searchItem = menu.findItem( R.id.newsfeed_search);
SearchView searchView = (SearchView) searchItem.getActionView();
\\The next few lines is what I tried from other StackOverFlow responses, but …Run Code Online (Sandbox Code Playgroud) 我正在开发带有片段的应用程序。它具有一个JavaScript接口,该接口在Main Activity中调用,并且具有片段替换逻辑。当应用程序在前台时,一切正常,但是当应用程序在后台时,片段事务替换不起作用。当我返回到我的应用程序时,我仍然看到旧的片段,而看不到新的片段。
@JavascriptInterface
public void beginCall(String toast) {
FragmentTransaction fTrans;
taskFragment = TaskFragment.newInstance(toast,"");
fTrans = getSupportFragmentManager().beginTransaction();
fTrans.replace(R.id.frgmCont, taskFragment);
fTrans.commit();
}
Run Code Online (Sandbox Code Playgroud)
怎么了?为什么片段事务在后台不起作用?