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のメソッドは全部使える
ただし、一行で書かないといけないので、可読性は期待できない
こんな感じ
コードの意味は
// Activityに設定しているViewの内適当に一つViewを取得
View view = findViewById(R.id.button1);

// importができないのでクラス名はフルで書く
android.support.design.widget.Snackbar snackbar;

// インスタンスを取得
// 第一引数はActivityに設定しているViewなら何でもいい.
// SnackbarはViewインスタンスから勝手にView階層をさかのぼってくれるので
snackbar = android.support.design.widget.Snackbar.make(
  view, "Snackbarの表示", android.support.design.widget.Snackbar.LENGTH_SHORT);

// 表示する
snackbar.show();
実は、Snackbarはサポートライブラリなので、AndroidStudioでも普通には使えない
当然「Sketchware」も使えない。なので、サポートライブラリを使えるように設定する
上図一番右の画面のフラグを有効にしておけばOK
あとはビルドすれば完成

0 件のコメント:

コメントを投稿