2018年6月10日日曜日

SketchwareでSnackbarを使う方法

Android端末でAndroidアプリを作成する方法に「Sketchware」がある
Viewやイベントをブロックで組んでいく感じで、プログラミング入門ゲーム「Scratch」に似てる
既存のブロックの組み合わせで作るので、Android標準のマニアックなViewは用意されていないので使えない
ところが、
ブロック作成にて「Operator」のなかにソースコードをゴリゴリに書けるブロックがあった
なので、Android標準のViewオブジェクト「Snackbar」を作ってみた


 アプリ作成
ボタンを押下したら、「Snackbar」が表示されるアプリを作ってく

アプリを新規作成
とりあえずアプリ名は「test」で
View側の作成
今回はボタンだけあればいい
左の一覧からボタンをドラッグして、Activityの任意の位置にドロップする
ロジック側の作成
View側でボタンを作ると、ここにボタン押下時の処理を書ける
このとき「More Block」⇒ 「Create」でスナックバーを呼び出すブロックを作る
ブロックの作成
ブロック名は適当でいい。今回は「Snackbar」としておく
二段目で引数を決められる。スナックバーに表示するメッセージを動的に変化させたければ、添付画像のように「message」とか引数名を決めて、ADDを押せば引数付ブロックが作れる。 今回は触らずにいく。
タイトルバーにある「CREATE」でブロック作成完了
あとは、作ったブロックをクリック処理と合体させる
これで、アプリ起動でボタンが表示される画面、ボタン押下で「Snackbar」ブロックが動作するアプリが出来上がり!
次の項目で、「Snackbar」ブロックのイベントを実装する

 Event内容をゴリゴリ実装する
Eventブロック「Snackbar」を実装する
「Snackbar」を押下
「Operator」 ⇒ 「add source directly」をくっつける
ここにソースコード直書きできる
ソースコードレベルで見たとき、こいつはActivityのpubicメソッドとして扱われる為、
Activityのメソッドは全部使える
ただし、一行で書かないといけないので、可読性は期待できない
こんな感じ
コードの意味は
  1. // Activityに設定しているViewの内適当に一つViewを取得
  2. View view = findViewById(R.id.button1);
  3.  
  4. // importができないのでクラス名はフルで書く
  5. android.support.design.widget.Snackbar snackbar;
  6.  
  7. // インスタンスを取得
  8. // 第一引数はActivityに設定しているViewなら何でもいい.
  9. // SnackbarはViewインスタンスから勝手にView階層をさかのぼってくれるので
  10. snackbar = android.support.design.widget.Snackbar.make(
  11. view, "Snackbarの表示", android.support.design.widget.Snackbar.LENGTH_SHORT);
  12.  
  13. // 表示する
  14. snackbar.show();
実は、Snackbarはサポートライブラリなので、AndroidStudioでも普通には使えない
当然「Sketchware」も使えない。なので、サポートライブラリを使えるように設定する
上図一番右の画面のフラグを有効にしておけばOK
あとはビルドすれば完成

0 件のコメント:

コメントを投稿