我刚刚将片段添加到Main_Activity中,现在将它们与抽屉布局交换,
这里的问题是该片段未包含在屏幕内部,如图所示,
如果有人需要,我会提供代码.
简要地说,我添加了一个线性布局,其中片段被交换了
<linearLayout androID:orIEntation="vertical" androID:ID="@+ID/container" androID:layout_wIDth="fill_parent" androID:layout_height="fill_parent"> </linearLayout>
这是请求的代码:
HEER“ activity_main.xml”
<?xml version="1.0" enCoding="utf-8"?><FrameLayout 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" androID:clipTopadding="false" androID:fitsSystemwindows="true"> <androID.support.v4.Widget.DrawerLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:ID="@+ID/DrawerLayout" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" androID:elevation="7dp"> <linearLayout androID:layout_wIDth="match_parent" androID:layout_height="match_parent" androID:orIEntation="vertical"> <include androID:ID="@+ID/tool_bar" layout="@layout/tool_bar"></include> <TextVIEw androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="Hello World" /> <linearLayout androID:ID="@+ID/container" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:orIEntation="vertical"> </linearLayout> </linearLayout> <androID.support.v7.Widget.RecyclerVIEw androID:ID="@+ID/RecyclerVIEw" androID:layout_wIDth="320dp" androID:layout_height="match_parent" androID:layout_gravity="left" androID:background="#ffffff" androID:scrollbars="vertical"> </androID.support.v7.Widget.RecyclerVIEw></androID.support.v4.Widget.DrawerLayout></FrameLayout>
这里是主要活动类别:
package com.rateker.ratekerand.ratekerandroID;import androID.support.v4.app.Fragment;import androID.support.v7.app.AppCompatActivity;import androID.os.Bundle;import androID.support.v4.Widget.DrawerLayout;import androID.support.v7.app.ActionbarDrawerToggle;import androID.support.v7.Widget.linearlayoutmanager;import androID.support.v7.Widget.RecyclerVIEw;import androID.support.v7.Widget.Toolbar;import androID.util.Log;import androID.vIEw.GestureDetector;import androID.vIEw.Menu;import androID.vIEw.MenuItem;import androID.vIEw.MotionEvent;import androID.vIEw.VIEw;public class MainActivity extends AppCompatActivity { String TitleS[] = {"Home", "Events", "Mail", "Shop", "Travel", "Home2", "Events2", "Mail2", "Shop2", "Travel2", "Shop3", "Travel3"}; int ICONS[] = {R.drawable.abc_menu_hardkey_panel_mtrl_mult, R.drawable.abc_menu_hardkey_panel_mtrl_mult, R.drawable.abc_menu_hardkey_panel_mtrl_mult, R.drawable.abc_menu_hardkey_panel_mtrl_mult, R.drawable.abc_menu_hardkey_panel_mtrl_mult, R.drawable.abc_menu_hardkey_panel_mtrl_mult, R.drawable.abc_menu_hardkey_panel_mtrl_mult, R.drawable.abc_menu_hardkey_panel_mtrl_mult, R.drawable.abc_menu_hardkey_panel_mtrl_mult, R.drawable.abc_menu_hardkey_panel_mtrl_mult, R.drawable.abc_menu_hardkey_panel_mtrl_mult, R.drawable.abc_menu_hardkey_panel_mtrl_mult}; //Similarly we Create a String Resource for the name and email in the header vIEw //And we also create a int resource for profile picture in the header vIEw String name = "Akash Bangad"; String EMAIL = "akash.bangad@androID4devs.com"; int PROfile = R.drawable.lighthouse; private Toolbar toolbar; // Declaring the Toolbar Object RecyclerVIEw mRecyclerVIEw; // Declaring RecyclerVIEw RecyclerVIEw.Adapter mAdapter; // Declaring Adapter For Recycler VIEw RecyclerVIEw.LayoutManager mLayoutManager; // Declaring Layout Manager as a linear layout manager DrawerLayout Drawer; // Declaring DrawerLayout ActionbarDrawerToggle mDrawerToggle; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_main); toolbar = (Toolbar) findVIEwByID(R.ID.tool_bar); // Attaching the layout to the toolbar object setSupportActionbar(toolbar); // Setting toolbar as the Actionbar with setSupportActionbar() call mRecyclerVIEw = (RecyclerVIEw) findVIEwByID(R.ID.RecyclerVIEw); // Assigning the RecyclerVIEw Object to the xml VIEw mRecyclerVIEw.setHasFixedSize(true); // Letting the system kNow that the List objects are of fixed size mAdapter = new MyAdapter(TitleS, ICONS, name, EMAIL, PROfile); // Creating the Adapter of MyAdapter class(which we are going to see in a bit) // And passing the Titles,icons,header vIEw name, header vIEw email, // and header vIEw profile picture final GestureDetector mGestureDetector = new GestureDetector(MainActivity.this, new GestureDetector.SimpleOnGestureListener() { @OverrIDe public boolean onSingleTapUp(MotionEvent e) { return true; } }); mRecyclerVIEw.setAdapter(mAdapter); // Setting the adapter to RecyclerVIEw mRecyclerVIEw.addOnItemtouchListener(new RecyclerVIEw.OnItemtouchListener() { @OverrIDe public boolean onIntercepttouchEvent(RecyclerVIEw recyclerVIEw, MotionEvent motionEvent) { VIEw child = recyclerVIEw.findChildVIEwUnder(motionEvent.getX(), motionEvent.getY());// child.getVerticalScrollbarposition() if (child != null && mGestureDetector.ontouchEvent(motionEvent)) { Drawer.closeDrawers(); System.out.println("@@@@@ !!!!!"); int position = mRecyclerVIEw.getChildAdapterposition(child); Fragment fragment = null; switch (position) { case 1: fragment = new FragmentHome(); break; case 2: fragment = new FragmentEvents(); break; default: fragment = new FragmentOthers(); break; } openFragment(fragment); return true; } return false; } @OverrIDe public voID ontouchEvent(RecyclerVIEw recyclerVIEw, MotionEvent motionEvent) { } });// setonItemClickListener(new OnItemClickListener() {// @OverrIDe// public voID onItemClick(AdapterVIEw<?> parent, VIEw vIEw,// int position, long ID) {// openActivity(position);// }// }); mLayoutManager = new linearlayoutmanager(this); // Creating a layout Manager mRecyclerVIEw.setLayoutManager(mLayoutManager); // Setting the layout Manager Drawer = (DrawerLayout) findVIEwByID(R.ID.DrawerLayout); // Drawer object Assigned to the vIEw mDrawerToggle = new ActionbarDrawerToggle(this, Drawer, toolbar, R.string.openDrawer, R.string.closeDrawer) { @OverrIDe public voID onDrawerOpened(VIEw drawerVIEw) { super.onDrawerOpened(drawerVIEw); // code here will execute once the drawer is opened( As I dont want anything happened whe drawer is // open I am not going to put anything here) } @OverrIDe public voID onDrawerClosed(VIEw drawerVIEw) { super.onDrawerClosed(drawerVIEw); // Code here will execute once drawer is closed } }; // Drawer Toggle Object Made Drawer.setDrawerListener(mDrawerToggle); // Drawer Listener set to the Drawer toggle mDrawerToggle.syncState(); } private voID openFragment(final Fragment fragment) { getSupportFragmentManager() .beginTransaction() .replace(R.ID.container, fragment) .commit(); } @OverrIDe public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } public voID onNavigationDrawerItemSelected(int position) { // update the main content by replacing fragments// FragmentManager fragmentManager = getFragmentManager();// fragmentManager.beginTransaction()// .replace(R.ID.content_frame, PlaceholderFragment.newInstance(position + 1))// .commit(); } @OverrIDe public boolean onoptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroIDManifest.xml. int ID = item.getItemID(); //noinspection SimplifiableIfStatement if (ID == R.ID.action_settings) { return true; } return super.onoptionsItemSelected(item); }}
这里是片段类别之一:
package com.rateker.ratekerand.ratekerandroID;import androID.support.annotation.Nullable;import androID.support.v4.app.Fragment;import androID.os.Bundle;import androID.vIEw.LayoutInflater;import androID.vIEw.VIEw;import androID.vIEw.VIEwGroup;import androID.Widget.ListVIEw;/** * A simple {@link androID.app.Fragment} subclass. */public class FragmentHome extends Fragment { @OverrIDe public VIEw onCreateVIEw(LayoutInflater inflater, VIEwGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflater.inflate(R.layout.fragmenthome, container, false); } @OverrIDe public voID onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); }}
这是片段的XML:
<?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:layout_wIDth="fill_parent" androID:layout_height="fill_parent" androID:background="#ffffff" androID:orIEntation="vertical"> <TextVIEw androID:padding="20dp" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:textAppearance="?androID:attr/textAppearanceLarge" androID:text=" HOME 1 HOME 2 HOME 3 HOME 4 HOME 5 HOME 6 HOME 7 HOME 8 HOME 9 HOME 11 HOME 12 HOME 13 HOME 14 HOME 15 HOME 16 HOME 17 HOME 18 HOME 19" androID:ID="@+ID/textVIEw" androID:layout_gravity="center_horizontal" /></linearLayout>
解决方法:
事实证明,我在模拟器的宽度和高度方面存在问题.窗口高度应与客人高度相同,宽度应相同.
总结以上是内存溢出为你收集整理的android-片段超出屏幕全部内容,希望文章能够帮你解决android-片段超出屏幕所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)