android 中卡片视图中带有三个点的小部件的名称是什么?
What's the name of the little widget with three dots inside a cardview in android?
带三个点的小部件是什么?如何将它添加到我的应用程序?
这根本不是小部件。它是一个 ImageButton
(无边框样式),使用包含 PopupMenu
的溢出图标
文档教程访问http://developer.android.com/guide/topics/ui/menus.html#PopupMenu
这指的是上面 link 中的一个很好的代码片段:
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_overflow_holo_dark"
android:contentDescription="@string/descr_overflow_button"
android:onClick="showPopup" />
然后用于显示弹出窗口:
public void showPopup(View v) {
PopupMenu popup = new PopupMenu(this, v);
MenuInflater inflater = popup.getMenuInflater();
inflater.inflate(R.menu.actions, popup.getMenu());
popup.show();
}
Android Studio 中的资产中提供了 3 点按钮:
右键单击 res
-> 新建 -> 矢量资产 -> 资产类型 = 剪贴画
-> 单击剪贴画旁边的按钮:标签 -> 搜索 more vert
正如我在网上找到的那样,它被称为 "overflow icon" 或动作溢出。
这段代码也许能帮到你。 (代码来自there)
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/menu_red"
android:orderInCategory="1"
android:showAsAction="never"
android:title="@string/red_string"/>
<item
android:id="@+id/menu_green"
android:orderInCategory="2"
android:showAsAction="never"
android:title="@string/green_string"/>
</menu>
"original" 三点小部件是 android.widget.ActionMenuPresenter.OverflowMenuButton
(ActionMenuPresenter.java)。可悲的是,它是一个私有 class。这是一个更短的工作版本:
public class OverflowMenuButton extends AppCompatImageView
{
public OverflowMenuButton(Context context)
{
this(context, null);
}
public OverflowMenuButton(Context context, AttributeSet attrs)
{
this(context, attrs, 0);
}
public OverflowMenuButton(Context context, AttributeSet attrs, int defStyleAttr)
{
super(new ContextThemeWrapper(context, R.style.OverflowButtonTheme), attrs, R.attr.actionOverflowButtonStyle);
setClickable(true);
setFocusable(true);
setVisibility(VISIBLE);
setEnabled(true);
}
}
ContextThemeWrapper
的主题以获得深色和浅色版本:
<!--White dots theme-->
<style name="OverflowButtonTheme" parent="@style/Theme.AppCompat">
<item name="actionOverflowButtonStyle">@style/Widget.AppCompat.ActionButton.Overflow</item>
</style>
<!--Dark dots theme-->
<style name="OverflowButtonThemeLight" parent="@style/Theme.AppCompat.Light">
<item name="actionOverflowButtonStyle">@style/Widget.AppCompat.Light.ActionButton.Overflow</item>
</style>
您也可以简单地使用带有 actionOverflowButtonStyle
样式属性的 ImageButton
。
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="?android:attr/actionOverflowButtonStyle"/>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FF000000"
android:pathData="M12,8c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zm0,2c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zm0,6c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2z"/>
</vector>
带三个点的小部件是什么?如何将它添加到我的应用程序?
这根本不是小部件。它是一个 ImageButton
(无边框样式),使用包含 PopupMenu
文档教程访问http://developer.android.com/guide/topics/ui/menus.html#PopupMenu
这指的是上面 link 中的一个很好的代码片段:
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_overflow_holo_dark"
android:contentDescription="@string/descr_overflow_button"
android:onClick="showPopup" />
然后用于显示弹出窗口:
public void showPopup(View v) {
PopupMenu popup = new PopupMenu(this, v);
MenuInflater inflater = popup.getMenuInflater();
inflater.inflate(R.menu.actions, popup.getMenu());
popup.show();
}
Android Studio 中的资产中提供了 3 点按钮:
右键单击 res
-> 新建 -> 矢量资产 -> 资产类型 = 剪贴画
-> 单击剪贴画旁边的按钮:标签 -> 搜索 more vert
正如我在网上找到的那样,它被称为 "overflow icon" 或动作溢出。
这段代码也许能帮到你。 (代码来自there)
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/menu_red"
android:orderInCategory="1"
android:showAsAction="never"
android:title="@string/red_string"/>
<item
android:id="@+id/menu_green"
android:orderInCategory="2"
android:showAsAction="never"
android:title="@string/green_string"/>
</menu>
"original" 三点小部件是 android.widget.ActionMenuPresenter.OverflowMenuButton
(ActionMenuPresenter.java)。可悲的是,它是一个私有 class。这是一个更短的工作版本:
public class OverflowMenuButton extends AppCompatImageView
{
public OverflowMenuButton(Context context)
{
this(context, null);
}
public OverflowMenuButton(Context context, AttributeSet attrs)
{
this(context, attrs, 0);
}
public OverflowMenuButton(Context context, AttributeSet attrs, int defStyleAttr)
{
super(new ContextThemeWrapper(context, R.style.OverflowButtonTheme), attrs, R.attr.actionOverflowButtonStyle);
setClickable(true);
setFocusable(true);
setVisibility(VISIBLE);
setEnabled(true);
}
}
ContextThemeWrapper
的主题以获得深色和浅色版本:
<!--White dots theme-->
<style name="OverflowButtonTheme" parent="@style/Theme.AppCompat">
<item name="actionOverflowButtonStyle">@style/Widget.AppCompat.ActionButton.Overflow</item>
</style>
<!--Dark dots theme-->
<style name="OverflowButtonThemeLight" parent="@style/Theme.AppCompat.Light">
<item name="actionOverflowButtonStyle">@style/Widget.AppCompat.Light.ActionButton.Overflow</item>
</style>
您也可以简单地使用带有 actionOverflowButtonStyle
样式属性的 ImageButton
。
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="?android:attr/actionOverflowButtonStyle"/>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FF000000"
android:pathData="M12,8c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zm0,2c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zm0,6c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2z"/>
</vector>