【问题标题】:Remove SearchView search voice button line删除 SearchView 搜索语音按钮线
【发布时间】:2015-04-01 13:54:21
【问题描述】:

感谢其他关于 SearchView 自定义的 SO 相关帖子,我能够自定义我的 SearchView 到这一点:

现在我正在尝试添加语音搜索,并且能够更改语音按钮背景资源:

int searchVoiceIconId = searchPlate.getContext().getResources().getIdentifier("android:id/search_voice_btn", null, null);
ImageView searchVoiceIcon = (ImageView) searchView.findViewById(searchVoiceIconId);
searchVoiceIcon.setImageResource(R.drawable.ic_action_mic);
searchVoiceIcon.setBackgroundColor(Color.TRANSPARENT);

但是,我似乎无法摆脱语音搜索按钮下的线路。

有什么建议吗???

谢谢

【问题讨论】:

    标签: android searchview


    【解决方案1】:

    这是一个迟到的回复,但它可能对未来有所帮助。

    添加以下行:

    <style name="AppTheme.SearchView" parent="Widget.AppCompat.SearchView">
        <!-- Gets rid of the "underline" in the mic button-->
        <item name="submitBackground">@null</item>
    

    到您的 values/styles.xml 文件,它将删除该行。

    【讨论】:

      【解决方案2】:

      代码:

      ((LinearLayout)search.findViewById(R.id.search_voice_btn).getParent()).setBackgroundColor(Color.TRANSPARENT);
      

      【讨论】:

      • 我遇到了一个异常:04-27 10:13:15.740: E/AndroidRuntime(16189): Caused by: java.lang.NullPointerException: Attempt to call virtual method 'android.view.空对象引用上的 ViewParent android.view.View.getParent()'
      【解决方案3】:
      int submitAreaId = searchView.getContext().getResources()
                      .getIdentifier("android:id/submit_area", null, null);
      View submitAreaView = searchView.findViewById(submitAreaId);
      if (submitAreaView != null) {
          submitAreaView.setBackgroundColor(Color.parseColor("#00000000"));
      }
      

      这应该删除非文本输入区域的所有下划线。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-08-10
        • 2013-07-24
        • 1970-01-01
        • 2016-05-26
        • 1970-01-01
        • 2021-01-02
        • 2018-02-18
        • 2014-12-06
        相关资源
        最近更新 更多