123

Snackbar (android.support.design.widget.Snackbar)を表示するのと同じように、アクティビティの開始時にAndroid を表示したいToast

しかし問題は、次のSnackbarように作成するときに親レイアウトを指定する必要があることです。

Snackbar.make(parentlayout, "This is main activity", Snackbar.LENGTH_LONG)
            .setAction("CLOSE", new View.OnClickListener() {
                @Override
                public void onClick(View view) {

                }
            })
            .setActionTextColor(getResources().getColor(android.R.color.holo_red_light ))
            .show();

クリックイベントなしでアクティビティの開始時に表示するときに親レイアウトを与える方法Snackbar(クリックイベントの場合、親ビューを簡単に渡すことができます)?

4

9 に答える 9

250

XMLView内のいずれかをポイントするだけです。Activity'sたとえば、ルート viewGroup に id を指定して、次のように使用できます。

@Override
protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);    
   setContentView(R.layout.main_activity);
   View parentLayout = findViewById(android.R.id.content);
   Snackbar.make(parentLayout, "This is main activity", Snackbar.LENGTH_LONG) 
        .setAction("CLOSE", new View.OnClickListener() {
            @Override 
            public void onClick(View view) {

            } 
        }) 
        .setActionTextColor(getResources().getColor(android.R.color.holo_red_light ))
        .show(); 
   //Other stuff in OnCreate();
}
于 2015-06-22T11:16:34.867 に答える
4

onCreate でこのメソッドを呼び出す

Snackbar snack = Snackbar.make(
                    (((Activity) context).findViewById(android.R.id.content)),
                    message + "", Snackbar.LENGTH_SHORT);
snack.setDuration(Snackbar.LENGTH_INDEFINITE);//change Duration as you need
            //snack.setAction(actionButton, new View.OnClickListener());//add your own listener
            View view = snack.getView();
            TextView tv = (TextView) view
                    .findViewById(android.support.design.R.id.snackbar_text);
            tv.setTextColor(Color.WHITE);//change textColor

            TextView tvAction = (TextView) view
                    .findViewById(android.support.design.R.id.snackbar_action);
            tvAction.setTextSize(16);
            tvAction.setTextColor(Color.WHITE);

            snack.show();
于 2016-12-28T14:05:40.100 に答える