Hea*_*ers 1 android android-actionbar searchview
我想显示一个总是在我的扩展中的AutoCompleteTextViewActionBar.这是我的菜单xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/visibility_menu_search"
android:icon="@drawable/ic_action_search"
android:showAsAction="always"
android:actionLayout="@layout/visibility_search" />
</menu>
Run Code Online (Sandbox Code Playgroud)
这是我的 layout/visibility_search.xml
<AutoCompleteTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/visibility_search_auto_complete_text_view" />
Run Code Online (Sandbox Code Playgroud)
这是我的活动:
public class VisibilityActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(layout.visibility_activity);
getActionBar().setDisplayShowTitleEnabled(false);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.visibility, menu);
return super.onCreateOptionsMenu(menu);
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用,showAsAction="always"因为我希望AutoCompleteTextView始终可见(这将是唯一的东西ActionBar).
我AutoCompleteTextView总是在右边对齐ActionBar,只有100px的宽度.为什么是这样?
更新
感谢Atul O Holic的回答,我为我的案例找到了一个首选解决方案,它根本不需要任何特殊逻辑.我要离开我的答案是正确的,因为它适用于一般情况下,但对于我的具体情况,一个SearchView是更好,更容易.
theelfismike的回答指出了我正确的方向,但我能够简化它.他链接的答案提到显示自定义视图ActionBar#setCustomView,而我正在尝试使用MenuItem#setActionView占据整个宽度的动作视图集.我的简化可能不适用于ActionBar自定义视图.
这是适合我的xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent">
<EditText xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/visibility_search_edit_text"/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
不幸的是,这隐藏了这个ActionBar头衔.与theelfismike相关的问题中的答案提到了这个问题,但我无法得到建议的解决方法.
此外,RelativeLayout似乎是动作视图的必需根.我尝试使用了LinearLayout许多不同组合的layout_gravity和layout_width,但我无法得到一个LinearLayout填充整个宽度.
| 归档时间: |
|
| 查看次数: |
4508 次 |
| 最近记录: |