gpt4 book ai didi

带有操作按钮的 Android 自定义操作栏

转载 作者:搜寻专家 更新时间:2023-11-01 08:05:11 25 4
gpt4 key购买 nike

这是我要创建的操作栏。

enter image description here

这是我放在菜单中的项目。

   <item
android:id="@+id/search"
android:title="Search"
android:showAsAction="ifRoom|collapseActionView"
android:actionLayout="@layout/search_layout"
/>

<item
android:id="@+id/search1"
android:title="PHOTO"
android:showAsAction="ifRoom"
android:actionLayout="@layout/search_layout"
/>

collapseActionView - 在启动时折叠搜索菜单。

enter image description here单击搜索项后,它会显示如图 1 所示的编辑文本。但我需要始终看到它,而不仅仅是单击后。

如果我将它设置为 Always,它会因为 fill_parent 而从屏幕上弹出菜单项。

<EditText
android:id="@+id/txt_search"
android:inputType="text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>

是否可以在没有菜单项的情况下获得标题栏布局的宽度?在这种情况下,我可以为 edittext 项目设置固定宽度。

是否有任何其他方法可以使其发挥作用?结果它必须是自定义标题布局 + 菜单项。此自定义布局必须填充菜单项和图标之间的空白区域。

最佳答案

使用Custom ActionBar,您可以解决您的问题。对于 Custom ActionBar,您必须按照以下方式在 Custom Layout 上创建:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:enabled="false"
android:orientation="horizontal"
android:layout_alignParentRight="true"
android:layout_gravity="right"
android:paddingEnd="8dip"
android:paddingRight="8dip"
android:paddingLeft="8dip">

<EditText
android:layout_width="200dip"
android:layout_height="wrap_content"
android:id="@+id/action_bar_edt_search"/>
<ImageButton
android:layout_width="50dip"
android:layout_height="50dip"
android:id="@+id/action_bar_img_search"
android:background="@drawable/search_ico"/>
<Button
android:id="@+id/action_bar_search"
android:layout_alignParentRight="true"
android:layout_gravity="right"
style="@style/ActionBarButtonWhite" />

<Button
android:id="@+id/action_bar_photo"
android:layout_alignParentRight="true"
android:layout_gravity="right"
style="@style/ActionBarButtonOffWhite" />

<Button
android:id="@+id/action_bar_video"
android:layout_alignParentRight="true"
android:layout_gravity="right"
style="@style/ActionBarButtonOffWhite" />

<Button
android:id="@+id/action_bar_mobile"
android:layout_alignParentRight="true"
android:layout_gravity="right"
style="@style/ActionBarButtonOffWhite" />

color.xml

<resources>
<color name="action_bar">#ff0d0d0d</color>
<color name="white">#ffffffff</color>
<color name="off_white">#99ffffff</color>
</resources>

styles.xml

<style name="MyActionButtonStyle" parent="android:Widget.ActionButton">
<item name="android:minWidth">28dip</item>
</style>


<style name="ActionBarButton">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:background">@null</item>
<item name="android:ellipsize">end</item>
<item name="android:singleLine">true</item>
<item name="android:textSize">@dimen/text_size_small</item>
</style>

现在您需要在您的 java 文件中创建 ViewGroupActionBar,如下所示:

final ViewGroup actionBarLayout = (ViewGroup) getLayoutInflater().inflate(
R.layout.actions,
null);

// Set up your ActionBar
final ActionBar actionBar = getActionBar();
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setCustomView(actionBarLayout);


// You customization

final int actionBarColor = getResources().getColor(R.color.action_bar);
actionBar.setBackgroundDrawable(new ColorDrawable(actionBarColor));

final EditText actionBarEditSearch = (EditText) findViewById(R.id.action_bar_edt_search);
actionBarEditSearch.setVisibility(View.GONE);

final ImageButton actionBarImgSearch = (ImageButton) findViewById(R.id.action_bar_img_search);
actionBarImgSearch.setVisibility(View.GONE);

final Button actionBarSearch = (Button) findViewById(R.id.action_bar_search);
actionBarSearch.setText("SEARCH");

final Button actionBarPhoto = (Button) findViewById(R.id.action_bar_photo);
actionBarPhoto.setText("PHOTO");

final Button actionBarVideo = (Button) findViewById(R.id.action_bar_video);
actionBarVideo.setText("VIDEO");

final Button actionBarMobile = (Button) findViewById(R.id.action_bar_mobile);
actionBarMobile.setText("MOBILE");

actionBarSearch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
actionBarEditSearch.setVisibility(View.VISIBLE);
actionBarImgSearch.setVisibility(View.VISIBLE);
actionBarSearch.setVisibility(View.GONE);
}
});

actionBarImgSearch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
actionBarEditSearch.setVisibility(View.GONE);
actionBarImgSearch.setVisibility(View.GONE);
actionBarSearch.setVisibility(View.VISIBLE);
}
});


<style name="ActionBarButtonWhite" parent="@style/ActionBarButton">
<item name="android:textColor">@color/white</item>
</style>

<style name="ActionBarButtonOffWhite" parent="@style/ActionBarButton">
<item name="android:textColor">@color/off_white</item>
</style>

关于带有操作按钮的 Android 自定义操作栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15291937/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com