带有图标和文本的Android菜单项在此图标上

时间:2017-08-29 22:04:28

标签: android menu

我需要在附加图片中制作“购物车图标” 带有用户添加到购物车的项目数的图标上的文字“

Image show icon with text on it

2 个答案:

答案 0 :(得分:0)

鉴于该功能的条件,我认为你需要实现类似布局的东西:

<?xml version="1.0" encoding="utf-8"?><android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/mainToolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="?android:actionBarSize"
    android:layout_marginRight="10dp"
    android:gravity="right|center_vertical"
    android:orientation="horizontal">

    <ImageView
        android:id="@+id/main_icon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="10dp"
        app:srcCompat="@drawable/heart_icon" />

    <ImageView
        android:layout_width="10dp"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:layout_marginLeft="-20dp"
        app:srcCompat="@drawable/number_icon" />
</LinearLayout>

答案 1 :(得分:0)

然后你需要手动创建你的图标菜单栏以完全控制它。

首先在 activity.xml

<android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"                
            app:popupTheme="@style/AppTheme.PopupOverlay" >
            <!-- set any fixed size for 'width' but DO NOT set wrap_content-->
            <RelativeLayout
                android:layout_width="48dp"
                android:layout_height="wrap_content">

                <ImageView
                    android:id="@+id/icon_image_view"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="[YOUR ICON]"/>
                <!-- you can set any attributes you want (background-fixed position .. etc) 
                     and you can also remove alignParentBottom , alignParentEnd .. 
                     i just add it to be clear -->
                <TextView
                    android:id="@+id/notification_text_view"
                    android:layout_width="wrap_content"
                    android:layout_alignParentBottom="true"
                    android:layout_alignParentEnd="true"
                    android:layout_height="wrap_content" />

            </RelativeLayout>


        </android.support.v7.widget.Toolbar>

然后,如果您使用活动,您可以直接访问它们。如果您使用片段,请执行以下步骤。

片段类中的

:为image_icon和text_notification添加setter

private ImageView iconImageView;
private TextView textNotificationView;


public void setIconImageView(ImageView iconImageView){
    this.iconImageView= iconImageView;
}
public void setTextNotificationView(TextView textNotificationView){
    this.textNotificationView= textNotificationView;
}

然后您需要手动设置片段。 在活动类

if(savedInstanceState == null) { // for rotation
        [FragmentClass] fragment = new [FragmentClass]();
        fragment.setIconImageView( (ImageView)findViewById(R.id.child_list_search_edit_view))
        fragment.setTextNotificationView( (TextView)findViewById(notification_text_view))

        getSupportFragmentManager().beginTransaction()
                .add(R.id.fragment, fragment, [Fragment TAG]).commit();
    }else{

        [FragmentClass] childActivityFragment =([FragmentClass]) getSupportFragmentManager()
                .findFragmentByTag([Fragment TAG]);

        fragment.setIconImageView( (ImageView)findViewById(R.id.child_list_search_edit_view))
        fragment.setTextNotificationView( (TextView)findViewById(notification_text_view))

    }

现在您可以根据需要添加通知。