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のメソッドは全部使える
ただし、一行で書かないといけないので、可読性は期待できない
こんな感じ
コードの意味は
実は、Snackbarはサポートライブラリなので、AndroidStudioでも普通には使えない
- // 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();
当然「Sketchware」も使えない。なので、サポートライブラリを使えるように設定する
上図一番右の画面のフラグを有効にしておけばOK
あとはビルドすれば完成
0 件のコメント:
コメントを投稿