我知道如何使用View.getRootView()获取根视图.我也能从一个按钮的onClick事件中获取视图,其中参数是一个视图.但是如何在活动中获取视图?
我想在我的应用程序中添加一个基本的快餐栏,但我收到一个错误,我无法弄清楚为什么.
我在片段中的onCreateView()方法中添加了这段代码.
Snackbar.make(view, "Snackbar", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
Run Code Online (Sandbox Code Playgroud)
并收到此错误:
06-01 10:26:09.955 1232-1232/? E/ActivityThread? Failed to find provider info for me.muraterdogan.watchme.MetricaContentProvider
06-01 10:26:10.075 1232-1447/? E/ActivityThread? Failed to find provider info for me.muraterdogan.watchme.YPLContentProvider
06-01 10:33:55.044 6646-6646/? E/AndroidRuntime? FATAL EXCEPTION: main
Process: me.muraterdogan.watchme, PID: 6646
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context android.view.ViewGroup.getContext()' on a null object reference
at android.support.design.widget.Snackbar.<init>(Snackbar.java:116)
at android.support.design.widget.Snackbar.make(Snackbar.java:140)
at me.muraterdogan.watchme.fragments.TrendingFragment.GetData(TrendingFragment.java:90)
at me.muraterdogan.watchme.fragments.TrendingFragment.onCreateView(TrendingFragment.java:83)
...
Run Code Online (Sandbox Code Playgroud) 我搜索了很多,但是找不到任何解决方案并小吃吧是不是片段类中的工作没有帮助。我传递了片段的rootView,还尝试从getActivity传递视图,但是它们都不起作用!
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
rootView = inflater.inflate(R.layout.content_dialog_bottom_sheet, container, false);
Snackbar.make(MyActivity.myTextview, "Hello", Snackbar.LENGTH_INDEFINITE).show();
Snackbar.make(rootView, "Hello", Snackbar.LENGTH_INDEFINITE).show();
return rootView;
}
Run Code Online (Sandbox Code Playgroud)
和我的content_dialog_bottom_sheet:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/bottomSheetLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/background"
app:behavior_hideable="true"
app:behavior_peekHeight="180dp"
app:layout_behavior="@string/bottom_sheet_behavior">
//some views
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)