2017-10-30 17 views
0

現在のところ、Appcelerator TitaniumのFloatingActionButtonのネイティブサポートはありません。だから、それをエミュレートする最も良い方法は何ですか?AndroidでFloatingActionButtonを「エミュレートする」最適な方法は? (Appcelerator Titanium)

私はこの1つのようなFloatingActionButtonを作成したい: Correct FloatingActionButton

私は別のアプローチを試みたが、それらのどれも100%正確であるように思いません。

GitHubにはいくつかのモジュールがありますが、そのうちの1つはアイコンを受け付けません。少なくとも、それらを使用する方法はわかりません(https://github.com/k0sukey/be.k0suke.tifab)。もう1つはハイパーループを有効にする必要があります。 LiveView(https://github.com/appcelerator-forks/loop-modules.Ti.FAB)を無効にすると、コンパイル時間が遅くなり、多くの時間を浪費します。

私はまた、backgroundColorのは、すべてのビューをカバーしていない、その中ImageViewの有する円形のビューを作成し、それが正しく表示されないです試してみました:

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" 
} 

私はチタンSDK 6.2.0を使用しています。

答えて

2

唯一の問題は、背景色があるように見えるImageViewを使用することだと思います。このボタンを作成するには複数の方法がありますが、ほぼ99%の類似のFABボタンを作成するサンプルアプリです。

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

それはあなたが単一のコードベースを使ってiOSの& Androidのためのより良いFABのボタンを作成する方法のサンプルソースコードが含まれています。また、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

+0

あなたのソリューションの作品を、私は「.floating-BTNののbackgroundColorに透明性を追加しようとしました"私はまだ全体のビューを満たしていない同じ問題があります:https://i.imgur.com/t0MflnM.png それはアプリになることができますceleratorのバグ? – guillefix

+1

私はタッチパッドフィードバックを使って透明度を設定しようとしたことはありません.Appcは、タッチフィードバックはbackgroundColorが単色である場合にのみ適用されると言いますから** –

関連する問題