gpt4 book ai didi

android - 单击 Navigation Drawer Fragment 正在单击 Main Content Fragment

转载 作者:太空宇宙 更新时间:2023-11-03 13:16:59 25 4
gpt4 key购买 nike

获取有线输出

当我点击 Navigation Drawer 的 TextView 时,点击转到后面的 fragment (主要内容 fragment )

请有人帮助我做错了什么。

布局代码

<LinearLayout 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:orientation="vertical">

<!-- The toolbar -->
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:title="@string/app_name" />

<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white">
<!-- The main content view -->
<LinearLayout 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:orientation="vertical">

<include layout="@layout/content_main" />

</LinearLayout>

<!-- The navigation drawer -->
<fragment
android:id="@+id/left_drawer"
android:name="app.compiler.fragment.FragmentDrawer"
android:layout_width="320dp"
android:layout_height="match_parent"
android:layout_gravity="start"
tools:layout="@layout/fragment_drawer"
/>
</android.support.v4.widget.DrawerLayout>

Java代码

public class ActivityMain extends AppCompatActivity {

DrawerLayout mDrawerLayout;


ActionBarDrawerToggle mDrawerToggle;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ide);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);


mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerToggle= new ActionBarDrawerToggle(this, mDrawerLayout,toolbar, R.string.app_name, R.string.app_name)
{

/** Called when a drawer has settled in a completely open state. */
public void onDrawerOpened(View drawerView) {
}

/** Called when a drawer has settled in a completely closed state. */
public void onDrawerClosed(View view) {
}
};
mDrawerLayout.setDrawerListener(mDrawerToggle);


if (savedInstanceState == null) {

FragmentMain fragmentMain = new FragmentMain();

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.add(R.id.container, fragmentMain);
transaction.commit();

}
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = new MenuInflater(this);
inflater.inflate(R.menu.menu_main,menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (mDrawerToggle.onOptionsItemSelected(item)) {
return true;
}
return super.onOptionsItemSelected(item);
}

@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
mDrawerToggle.syncState();
}

@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
mDrawerToggle.onConfigurationChanged(newConfig);
}

@Override
public void onBackPressed() {
if(mDrawerLayout.isDrawerOpen(Gravity.START | Gravity.LEFT)){
mDrawerLayout.closeDrawers();
return;
}
super.onBackPressed();
}
}

检查下面 gif 图像中的代码输出 output of code

最佳答案

确保左抽屉布局中的所有内容都是可点击的。否则,点击将传递到底层 View ,在本例中为您的主要内容。您可以通过将 OnClickListener 设置为 FragmentDrawer 的 Root View 来实现:

myFragmentInsideTheDrawer.getView().setOnClickListener(new OnClickListener() {
@Override
public void onClick(View pView) {
// do nothing here, just intercept click-events
}
});

关于android - 单击 Navigation Drawer Fragment 正在单击 Main Content Fragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34558804/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com