2016-02-12 50 views
0

的Andorid用户界面的错误我有一个片段。这里面片段我宣布一个鳍状肢和一个水平recylceview。我有一个问题,并且不知道如何解决这些问题。与recycleview和脚蹼

当我打开应用程序一切正常screenshot link,但是当我旋转屏幕为横向我看到了一个视觉错误的脚蹼screenshot link,但是当我将其旋转回纵向看已经为recycleview已经screenshot link

HomeFragment.class

public class HomeFragment extends RoboFragment { 
    @InjectView(R.id.viewFlipper) 
    ViewFlipper mViewFlipper; 
    ArrayList<Category> categoriesList; 
    private View rootView; 
    private GestureDetector mGestureDetector; 
    private int[] mResources = { 
      R.mipmap.temp_screen_1, 
      R.mipmap.temp_screen_2, 
      R.mipmap.temp_screen_3, 
      R.mipmap.temp_screen_4 
    }; 

    public void createCategories() { 

     categoriesList = new ArrayList<>(); 
     categoriesList.add(new Category("Android", R.mipmap.icon_android)); 
     categoriesList.add(new Category("IOS", R.mipmap.icon_ios)); 
     categoriesList.add(new Category("Windows Phone", R.mipmap.icon_windows_phone)); 
     categoriesList.add(new Category("Blackberry", R.mipmap.icon_blackberry)); 
     categoriesList.add(new Category("Budget phones", R.mipmap.icon_phone)); 
     categoriesList.add(new Category("Tablets", R.mipmap.icon_tablet)); 
     categoriesList.add(new Category("Jewelry & Watch", R.mipmap.icon_watch)); 
     categoriesList.add(new Category("Health & Beauty", R.mipmap.icon_umbrella)); 
    } 


    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     rootView = inflater.inflate(R.layout.fragment_home, container, false); 

     return rootView; 
    } 

    @Override 
    public void onViewCreated(View view, Bundle savedInstanceState) { 
     super.onViewCreated(view, savedInstanceState); 
     Utils.showToolbar(getActivity()); 

     setSlideShow(); 
     setCategories(); 

    } 

    private void setCategories() { 
     createCategories(); 

     RecyclerView recyclerView = (RecyclerView) rootView.findViewById(R.id.my_recycler_view); 
     recyclerView.setHasFixedSize(true); 
     HorizontalRecycleViewAdapter adapter = new HorizontalRecycleViewAdapter(getActivity(), categoriesList); 
     recyclerView.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.HORIZONTAL, false)); 
     recyclerView.setNestedScrollingEnabled(false); 
     recyclerView.setAdapter(adapter); 
    } 

    private void setSlideShow() { 
     for (int mResource : mResources) { 
      ResizableImageView imgageView = new ResizableImageView(getActivity()); 
      imgageView.setImageResource(mResource); 
      mViewFlipper.addView(imgageView); 
     } 

     mViewFlipper.setInAnimation(getActivity(), android.R.anim.fade_in); 
     mViewFlipper.setOutAnimation(getActivity(), android.R.anim.fade_out); 

     CustomGestureDetector customGestureDetector = new CustomGestureDetector(mViewFlipper); 
     mGestureDetector = new GestureDetector(getActivity(), customGestureDetector); 

     mViewFlipper.setAutoStart(true); 
     mViewFlipper.setFlipInterval(5000); 
    } 
} 

fragment_home.xml

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:focusable="true" 
     android:focusableInTouchMode="true"> 

     <ViewFlipper 
      android:id="@+id/viewFlipper" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" /> 

     <android.support.v7.widget.RecyclerView 
      android:layout_below="@+id/viewFlipper" 
      android:id="@+id/my_recycler_view" 
      android:layout_width="match_parent" 
      android:layout_height="200dp" 
      android:scrollbars="none" /> 
    </RelativeLayout> 

</ScrollView> 

MainActivity.class

@ContentView(R.layout.activity_main) 
public class MainActivity extends RoboActionBarActivity { 

    @InjectView(R.id.tool_bar) 
    Toolbar toolbar; 

    SlidingMenu menu; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setToolBar(); 
     setSlideMenu(); 

     if (savedInstanceState == null) { 
      getSupportFragmentManager().beginTransaction() 
        .add(R.id.container, new SplashFragment()) 
        .commit(); 
     } else { 
      getSupportFragmentManager().beginTransaction() 
        .add(R.id.container, new HomeFragment()) 
        .commit(); 
     } 
    } 

    private void setToolBar() { 
     setSupportActionBar(toolbar); 
    } 

    private void setSlideMenu() { 
     menu = new SlidingMenu(this); 
     menu.setMenu(R.layout.slidemenu); 
     menu.setMode(SlidingMenu.LEFT); 
     menu.setSlidingEnabled(false); 
     menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); 
     menu.setFadeDegree(0.35f); 
     menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT); 
     menu.setBehindWidthRes(R.dimen.slidingmenu_behind_width);// Setting toolbar as the ActionBar with setSupportActionBar() call 
    } 

    public void toggleSlidingMenu(View view) { 
     menu.toggle(); 
    } 
} 

activity_main.xml中

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".activities.MainActivity"> 

    <include 
     android:id="@+id/tool_bar" 
     layout="@layout/tool_bar" /> 
    <FrameLayout 
     android:layout_below="@+id/tool_bar" 
     android:id="@+id/container" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     tools:context=".activities.MainActivity" 
     tools:ignore="MergeRootFrame" /> 
</RelativeLayout> 
+1

也请提供您活动的代码添加片段 –

+0

更新的话题 – test

回答

1

好像你要添加的片段多次,有没有错误,你只要有同样的观点两次,如果你改变了方向回纵向你有3 .. 。等等。

if (savedInstanceState == null) { 
    getSupportFragmentManager().beginTransaction() 
      .add(R.id.container, new SplashFragment()) 
      .commit(); 
} else { 
    getSupportFragmentManager().beginTransaction() 
      .add(R.id.container, new HomeFragment()) // <- here 
      .commit(); 
} 

使用replace或检查片段是否已添加。

+0

非常感谢你 – test