我目前正在学习如何将我的应用程序转换为Material设计,现在我有点卡住了.我添加了工具栏,我的导航抽屉覆盖了所有内容.
我现在正在尝试创建一个类似于材料指南中的可扩展搜索:

这就是我现在所拥有的,我无法弄清楚如何使它如上所述:

这是我的菜单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/action_search"
android:icon="@android:drawable/ic_menu_search"
android:title="Search"
app:showAsAction="always"
app:actionViewClass="android.support.v7.widget.SearchView" />
</menu>
Run Code Online (Sandbox Code Playgroud)
这有效,我得到一个扩展到SearchView的菜单项,我可以很好地过滤我的列表.虽然看起来不像第一张照片.
我尝试使用MenuItemCompat.setOnActionExpandListener(),R.id.action_search所以我可以将主页图标更改为后退箭头,但这似乎不起作用.侦听器中没有任何内容被触发.即使它起作用,它仍然不会非常接近第一张图像.
如何在新的appcompat工具栏中创建看起来像材质指南的SearchView?
android toolbar android-appcompat searchview material-design
我有一个View,其中有两个文本框,用户可以在同一个屏幕上从另一个视图中选择文本颜色(通过对话框).
因此,当用户通过对话框更改颜色时,我正在更改EditText文本的颜色及其提示.但是当EditText用户选择其他颜色之后有一些文本可用时,那么该文本就会以该颜色出现.但是,如果我删除所有文本,那么HintText的颜色就是之前颜色的颜色.
例如,目前如果我在文本框中有红色,并且用户选择绿色,那么文本是绿色的.但是,如果我删除该文本,那么即使我在代码中更改提示颜色,提示文本也会显示为红色.只有当有一些文本时才会出现此问题.如果它是空白的并且提示文本在那里那么问题就不会到来.
如果我添加一个EditTextXML,我可以设置textCursorDrawable="@null":
<EditText
android:id="@+id/txtE3Casecode4"
android:layout_width="30dp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:background="#C7C7C5"
android:textCursorDrawable="@null"
android:ems="10"
android:inputType="number"
android:maxLength="2"
android:text="01"
android:textColor="#000000" />
Run Code Online (Sandbox Code Playgroud)
现在我画一个EditTextJava.我想要设定android:textCursorDrawable="@null".
LinearLayout.LayoutParams paramtext = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
EditText txtOther = new EditText(this);
txtOther.setLayoutParams(paramtext);
txtOther.setBackgroundColor(Color.WHITE);
txtOther.setTextColor(Color.BLACK);
txtOther.setId(99999);
// txtOther.setCursorDrawable ?
Run Code Online (Sandbox Code Playgroud)
怎么设置它?
我在活动中有两个片段.当片段A显示时,我希望显示导航抽屉汉堡图标并使导航抽屉工作.当片段B显示时,我想要显示后退箭头以及何时单击它进行向上导航.但是,除非导航抽屉打开,否则我似乎无法使用新的AppCompat v7工具栏在ActionBarActivity中显示向上箭头.
在我的活动中,对于我的onCreate()方法,我有......
toolbar = (Toolbar) findViewById(R.id.toolbar);
if (toolbar != null) {
setSupportActionBar(toolbar);
}
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, toolbar, R.string.drawer_open, R.string.drawer_close);
mDrawerLayout.setDrawerListener(mDrawerToggle);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
Run Code Online (Sandbox Code Playgroud)
然后我打电话给mDrawerToggle.syncState();我的onPostCreate()
我试过搜索如何以编程方式触发工具栏图标到后箭头,但没有任何工作.从我收集到的,呼唤
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
Run Code Online (Sandbox Code Playgroud)
从我的片段应该改变图标,但事实并非如此.这可能是一个愚蠢的问题,但我做错了什么?
android android-fragments android-actionbar android-actionbaractivity android-toolbar