Mai*_*r00 60 java android android-actionbar
我想实现自定义ActionBar,必须如下所示:

所以问题:
ActionBar?ActionBar或什么?adn*_*eal 146

如果您想使用ActionBarAPI,这几乎就像您将获得的那样接近.我不确定你可以在ActionBar没有做一些奇怪的Window黑客攻击的情况下放置一个色带,这不值得麻烦.至于改变它MenuItems,你可以通过一种风格使那些更紧.它会是这样的,但我还没有测试过.
<style name="MyTheme" parent="android:Theme.Holo.Light">
<item name="actionButtonStyle">@style/MyActionButtonStyle</item>
</style>
<style name="MyActionButtonStyle" parent="Widget.ActionButton">
<item name="android:minWidth">28dip</item>
</style>
Run Code Online (Sandbox Code Playgroud)
以下是如何为您的自定义布局充气和添加自定义布局ActionBar.
// Inflate your custom layout
final ViewGroup actionBarLayout = (ViewGroup) getLayoutInflater().inflate(
R.layout.action_bar,
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 Button actionBarTitle = (Button) findViewById(R.id.action_bar_title);
actionBarTitle.setText("Index(2)");
final Button actionBarSent = (Button) findViewById(R.id.action_bar_sent);
actionBarSent.setText("Sent");
final Button actionBarStaff = (Button) findViewById(R.id.action_bar_staff);
actionBarStaff.setText("Staff");
final Button actionBarLocations = (Button) findViewById(R.id.action_bar_locations);
actionBarLocations.setText("HIPPA Locations");
Run Code Online (Sandbox Code Playgroud)
这是自定义布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:enabled="false"
android:orientation="horizontal"
android:paddingEnd="8dip" >
<Button
android:id="@+id/action_bar_title"
style="@style/ActionBarButtonWhite" />
<Button
android:id="@+id/action_bar_sent"
style="@style/ActionBarButtonOffWhite" />
<Button
android:id="@+id/action_bar_staff"
style="@style/ActionBarButtonOffWhite" />
<Button
android:id="@+id/action_bar_locations"
style="@style/ActionBarButtonOffWhite" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
这是彩条的布局:要使用它,只需使用merge你膨胀的任何布局setContentView.
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="@dimen/colorstrip"
android:background="@android:color/holo_blue_dark" />
Run Code Online (Sandbox Code Playgroud)
以下是Button款式:
<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>
<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>
Run Code Online (Sandbox Code Playgroud)
以下是我使用的颜色和尺寸:
<color name="action_bar">#ff0d0d0d</color>
<color name="white">#ffffffff</color>
<color name="off_white">#99ffffff</color>
<!-- Text sizes -->
<dimen name="text_size_small">14.0sp</dimen>
<dimen name="text_size_medium">16.0sp</dimen>
<!-- ActionBar color strip -->
<dimen name="colorstrip">5dp</dimen>
Run Code Online (Sandbox Code Playgroud)
如果你想更多地定制它,你可能会考虑不使用它ActionBar,但我不建议这样做.您也可以考虑阅读Android设计指南,以更好地了解如何设计您的ActionBar.
如果您选择放弃ActionBar并使用自己的布局,则应确保Toasts在用户长按"MenuItems"时添加可操作性.使用此Gist可以轻松实现这一点.
| 归档时间: |
|
| 查看次数: |
121682 次 |
| 最近记录: |