Android查找工具栏

Android查找工具栏,android,toolbar,Android,Toolbar,我在应用程序中有两个模块。在第二个例子中,我将活动作为上下文。该任务需要通过第二个模块显示工具栏动画。问题在于我不想将工具栏对象从1发送到2模块,也许有办法通过Activity obj将其发送出去?这一点都不难。如果您阅读本文,您可以看到工具栏具有私有id,可以通过getResources().getIdentifier(“action\u bar”、“id”、“android”)找到该id。但在某些情况下,当您试图通过此id查找视图时,返回null。然后,您应该尝试使用第二个方法递归地查找它。

我在应用程序中有两个模块。在第二个例子中,我将活动作为上下文。该任务需要通过第二个模块显示工具栏动画。问题在于我不想将工具栏对象从1发送到2模块,也许有办法通过Activity obj将其发送出去?

这一点都不难。如果您阅读本文,您可以看到工具栏具有私有id,可以通过
getResources().getIdentifier(“action\u bar”、“id”、“android”)
找到该id。但在某些情况下,当您试图通过此id查找视图时,返回null。然后,您应该尝试使用第二个方法递归地查找它。希望这能对你有所帮助

    @Nullable public Toolbar getToolbarView(@NonNull Context context) {
        Activity activity = ((Activity) context);

        int resId = context.getResources().getIdentifier("action_bar", "id", "android");

        Toolbar toolbar = (Toolbar) activity.findViewById(resId);
        if (toolbar == null) {
            toolbar = findToolbar((ViewGroup) activity.findViewById(android.R.id.content));
        }
        return toolbar;
    }

    private Toolbar findToolbar(@NonNull ViewGroup viewGroup) {
        for (int i = 0; i < viewGroup.getChildCount(); i++) {
            View view = viewGroup.getChildAt(i);
            if (view.getClass().getName().equals("android.support.v7.widget.Toolbar")
                    || view.getClass().getName().equals("android.widget.Toolbar")) {
                return (Toolbar) view;
            } else if (view instanceof ViewGroup) {
                return findToolbar((ViewGroup) view);
            }
        }
        return null;
    }
@Nullable公共工具栏getToolbarView(@NonNull上下文){
活动活动=((活动)上下文);
int resId=context.getResources().getIdentifier(“操作栏”、“id”、“android”);
Toolbar Toolbar=(Toolbar)activity.findViewById(resId);
如果(工具栏==null){
toolbar=findToolbar((视图组)activity.findViewById(android.R.id.content));
}
返回工具栏;
}
专用工具栏findToolbar(@NonNull ViewGroup ViewGroup){
对于(int i=0;i
你必须将
工具栏
对象公之于众。你能列出一些代码还是更详细一些?我不能,只是在纸上。我在应用程序中有两个模块。在第二个例子中,我将活动作为上下文。该任务需要通过第二个模块显示工具栏动画。问题在于我不想将工具栏对象从1发送到2模块,也许有某种方法可以通过Activity obj?Activity.getToolbar()@Divers获得它,没有这种方法。我可以得到ActionBar,但是我不能将它投射到工具栏,并根据需要设置动画。