在Android上“模仿”FloatingActionButton的最佳方法? (Appcelerator Titanium)

时间:2017-10-30 09:17:10

标签: android titanium appcelerator

截至今天,Appcelerator Titanium上还没有对FloatingActionButton的本机支持,所以我想知道哪种是最好的模拟方式。

我想创建一个像这样的FloatingActionButton: Correct FloatingActionButton

我尝试了不同的方法,但它们似乎都不是100%准确。

我已经看到GitHub上有几个模块,但其中一个不接受图标或至少我不知道如何使用它们(https://github.com/k0sukey/be.k0suke.tifab)而另一个需要我启用Hyperloop并禁用LiveView(https://github.com/appcelerator-forks/loop-modules.Ti.FAB),这将减慢编译时间,从而浪费大量时间。

我还尝试在其中创建一个带有ImageView的圆形视图,但是它没有正确显示,backgroundColor没有覆盖所有视图:

Wrong FloatingActionButton

我的代码如下所示:

XML:

<View id="locateView">
    <ImageView id="locateUser" touchEnabled="false" />
</View>

JS:

// This is half of 32dp
Alloy.Globals.borderRadiusFAB = ( parseInt("32dp") * (Titanium.Platform.displayCaps.dpi / 160));

TSS:

"#locateView" : {
    bottom: "12dp",
    right: "12dp",
    height: "48dp",
    width: "48dp",
    borderRadius : Alloy.Globals.borderRadiusFAB,
    backgroundColor: '#80FFFFFF',
    touchFeedback: true,
    touchFeedbackColor: "#808080",
    elevation: 10
}

"#locateUser" : {
    height: "32dp",
    width: "32dp",
    image : "/icons/my_location.png"
}

我使用的是Titanium SDK 6.2.0。

1 个答案:

答案 0 :(得分:3)

我认为唯一的问题是使用似乎有一些背景颜色的ImageView。有多种方法可以创建此按钮,但这里有一个示例应用程序,可以创建几乎99%的类似FAB按钮。

https://drive.google.com/file/d/0B4ZdsEjK2ySIMXd1YS15ZTk1TDg/view?usp=sharing

它包含一个示例源代码,说明如何为iOS和&amp; A创建更好的FAB按钮。 Android使用单一代码库。它还包含一个Material Font文件,显示如何使用Fonts创建矢量图像/图标而不是ImageView。

以下是有关在 ImageView 的地方使用标签的详情的链接。

https://medium.com/all-titanium/cool-technique-to-use-vector-icons-using-iconic-font-files-aab4513aa8da

此示例代码将创建如下图标:

enter image description here

enter image description here