我正在使用 umano 的 AndroidSlidingUpPanel .我想将滑动面板显示为已展开。以下是我的 fragment 代码。
public class Anasayfa extends BaseFragment {
private SlidingUpPanelLayout partViewer;
public Anasayfa(String id, String title) {
super(id,title);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
partViewer = (SlidingUpPanelLayout) inflater.inflate(R.layout.fragment_issue_part, container, false);
Issue issue = TaskManager.getIssue(TaskManager.getLatestIssueDate(),getActivity().getApplicationContext());
FragmentActivity activity = getActivity();
IssuePageAdapter adapter = new IssuePageAdapter(activity.getSupportFragmentManager(), issue.getPartAnaGazete());
ViewPager issuePager = (ViewPager) partViewer.findViewById(R.id.pager);
issuePager.setAdapter(adapter);
partViewer.expandPanel();
return partViewer;
}
}
我使用以下代码将 fragment 附加到我的 Activity 中:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
settings = getSharedPreferences("UserInfo", 0);
imageLoader = ImageLoader.getInstance(this);
setupDrawer();
gotoFragmentAnasayfa();
}
public void gotoFragmentAnasayfa() {
Fragment myApp = new Anasayfa("", "Anasayfa");
goToFragment(myApp);
}
private void goToFragment(Fragment view) {
FragmentTransaction transaction = fragmentManager.beginTransaction();
transaction.replace(R.id.content_frame, view);
transaction.commit();
}
但是我得到 NullPointerException 因为 SlidingUpPanelLayout.mSlideableView
没有被实例化。
以下是堆栈跟踪:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.promob.myapp/com.promob.myapp.MainActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
at android.app.ActivityThread.access$800(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5017)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.sothree.slidinguppanel.SlidingUpPanelLayout.expandPanel(SlidingUpPanelLayout.java:887)
at com.sothree.slidinguppanel.SlidingUpPanelLayout.expandPanel(SlidingUpPanelLayout.java:876)
at com.promob.myapp.fragment.Anasayfa.onCreateView(Anasayfa.java:39)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:1500)
mSlideableView
在 SlidingUpPanelLayout.onMeasure()
方法中实例化(参见 SlidingUpPanelLayout.java 上的第 574 行)。
我应该如何(或在哪个生命周期阶段)显示向上滑动面板已展开?
最佳答案
你好。
在我使用的最新版本中,添加了这个属性:
sothree:umanoInitialState="expanded"
所以我的代码是这样的:
<com.sothree.slidinguppanel.SlidingUpPanelLayout
xmlns:sothree="http://schemas.android.com/apk/res-auto"
android:id="@+id/spl_SlideLayout_activity_searchform"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="top"
sothree:umanoPanelHeight="68dp"
sothree:umanoShadowHeight="4dp"
sothree:umanoParalaxOffset="100dp"
sothree:umanoDragView="@+id/dragView"
sothree:umanoInitialState="expanded" >
关于android - 如何显示向上滑动面板展开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24241145/