GVKun编程网logo

iphone – UINavigationItem titleView的位置

2

这篇文章主要围绕iphone–UINavigationItemtitleView的位置展开,旨在为您提供一份详细的参考资料。我们将全面介绍iphone–UINavigationItemtitleVie

这篇文章主要围绕iphone – UINavigationItem titleView的位置展开,旨在为您提供一份详细的参考资料。我们将全面介绍iphone – UINavigationItem titleView的位置,同时也会为您带来android – NavigationView OnNavigationItemSelectedListener未被调用、android – NavigationView setNavigationItemSelectedListener此API标记为支持库的内部,不应从应用程序访问、android.support.design.widget.BottomNavigationView.OnNavigationItemSelectedListener的实例源码、android.support.design.widget.NavigationView.OnNavigationItemSelectedListener的实例源码的实用方法。

本文目录一览:

iphone – UINavigationItem titleView的位置

iphone – UINavigationItem titleView的位置

我使用UINavigationItem的titleView属性来设置一个自定义的UILabel与我所需的字体大小/颜色.这是我的代码:

self.headerLabel = [[UILabel alloc] initWithFrame:CGRectMake(0.0,0.0,400.0,44.0)];
self.headerLabel.textAlignment = UITextAlignmentCenter;
self.headerLabel.backgroundColor = [UIColor clearColor];
self.headerLabel.font = [UIFont boldSystemFontOfSize:20.0];
self.headerLabel.textColor = [UIColor colorWithRed:0.259 green:0.280 blue:0.312 alpha:1.0];
self.navigationItem.titleView = self.headerLabel;

在导航栏中,我还有一个左栏按钮.结果是这样的:

alt text http://cl.ly/41164eec656c96e7c913/content

正如你所看到的,文本没有正确的居中.我已经尝试设置标签的x原点,但这没有任何效果.

解决方法

如果您将headerLabel作为titleView的子视图,则可以设置headerLabel的框架来控制它在titleView内的位置.

你现在的方式,你没有这样的控制.我认为操作系统根据可用空间为您选择titleView的框架.

希望这可以帮助!

android – NavigationView OnNavigationItemSelectedListener未被调用

我试图在我的应用程序中使用来自 Android支持设计库的NavigationView.由于某些原因OnNavigationItemSelected监听器未被调用.这是我的代码 @H_301_2@活动布局

<android.support.design.widget.NavigationView
    android:id="@+id/navigation_view"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    app:headerLayout="@layout/drawer_header"
    app:menu="@menu/drawer_menu" />

        <FrameLayout
            android:id="@+id/content_frame"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
@H_301_2@活动onCreate()

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

    toolbar = (Toolbar) findViewById(R.id.activity_toolbar);
    setSupportActionBar(toolbar);
    toolbar.inflateMenu(R.menu.common_menu);
    final ActionBar actionBar = getSupportActionBar();
    if (actionBar != null) {
        actionBar.setHomeAsUpIndicator(R.drawable.ic_menu_white_24dp);
        actionBar.setdisplayHomeAsUpEnabled(true);
    }

    drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    navigationView = (NavigationView) findViewById(R.id.navigation_view);
    navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
        @Override
        public boolean onNavigationItemSelected(final MenuItem menuItem) {
            Snackbar.make(contentLayout,menuItem.getTitle() + " pressed",Snackbar.LENGTH_LONG).show();
            menuItem.setChecked(true);
            // allow some time after closing the drawer before performing real navigation
            // so the user can see what is happening
            drawerLayout.closeDrawer(GravityCompat.START);
            mDrawerActionHandler.postDelayed(new Runnable() {
                @Override
                public void run() {
                    navigate(menuItem.getItemId());
                }
            },DRAWER_CLOSE_DELAY_MS);
            drawerLayout.closeDrawers();
            return true;
        }

    });
    usernameTextView = (TextView) findViewById(R.id.drawer_header_username);                  
    usernameTextView.setText(getAppDContext().getAccount().getUsername());
   }

解决方法

当你做一个xml时,你应该在BaseLayout(FrameLayout,LinearLayout等)之后写下NavigationView
<DrawerLayout>
    <FrameLayout />
    <NavigationView />
</DrawerLayout>

android – NavigationView setNavigationItemSelectedListener此API标记为支持库的内部,不应从应用程序访问

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        /*Ini UI*/

        mToolbar = (Toolbar) findViewById(t);
        setupToolbar();

        mNavigationRv = (RecyclerView) findViewById(R.id.navigation_rv);
        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer);
        mNavigationView = (NavigationView) findViewById(R.id.nv);

        mNavigationRv.setLayoutManager(new linearlayoutmanager(this, linearlayoutmanager.HORIZONTAL, false));
        mNavigationAdapter = new NavigationAdapter(new ArrayList<String>(), this, this);
        mNavigationRv.setAdapter(mNavigationAdapter);
        mActionBarDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, 0, 0);
        mNavigationView.setNavigationItemSelectedListener(this);
        getSupportActionBar().setdisplayHomeAsUpEnabled(true);
    }

Android工作室给了我一个错误

“This API is marked as internal for the support library and should not
be accessed from apps”

for setNavigationItemSelectedListener和setCheckedItem.

请帮忙.

解决方法:

更新到支持库25.0.1后,此处相同.

这是一个警告,它适用于NavigationView的所有公共方法,但它很烦人,因为Android Studio将其标记为错误.

@SuppressWarnings(“RestrictedApi”)暂时解决它.

编辑
看起来这是Android Studio不支持库的问题.
使用AS 2.3 Canary 3我没有看到任何警告.

android.support.design.widget.BottomNavigationView.OnNavigationItemSelectedListener的实例源码

android.support.design.widget.BottomNavigationView.OnNavigationItemSelectedListener的实例源码

项目:SpaceMaterial    文件:MainActivity.java   
private void initViews() {
    // Bottom bar
    BottomNavigationView bottomNavigationView = findById(this,bottom_navigation_view);
    bottomNavigationView.setonNavigationItemSelectedListener(new OnNavigationItemSelectedListener() {
        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem item) {
            switch (item.getItemId()) {
                case R.id.tab_iss_location:
                    contentViewPager.setCurrentItem(ISS_LOCATION_FRAGMENT_POSITION,false);
                    break;
                case R.id.tab_people_in_space:
                    contentViewPager.setCurrentItem(PEOPLE_IN_SPACE_FRAGMENT_POSITION,false);
                    break;
                case R.id.tab_iss_pass_times:
                    contentViewPager.setCurrentItem(ISS_PASS_TIMES_FRAGMENT_POSITION,false);
                    break;
            }
            return true;
        }
    });

    // ViewPager
    FragmentPagerAdapter mainPagerAdapter = new MainPagerAdapter(getSupportFragmentManager());
    contentViewPager.setAdapter(mainPagerAdapter);
}

android.support.design.widget.NavigationView.OnNavigationItemSelectedListener的实例源码

android.support.design.widget.NavigationView.OnNavigationItemSelectedListener的实例源码

项目:mdsimpleNotes    文件:MainActivity.java   
private void setupDrawerContent(NavigationView navigationView) {
    navigationView.setNavigationItemSelectedListener(new OnNavigationItemSelectedListener() {

        @Override
        public boolean onNavigationItemSelected(MenuItem menuItem) {
            menuItem.setChecked(true);
            mDrawerLayout.closeDrawers();
            switch (menuItem.getItemId()) {
                case R.id.navItem1:
                    Intent alarm = new Intent(AlarmClock.ACTION_SET_ALARM);
                    startActivity(alarm);
                    break;
                case R.id.navItem2:
                    try {
                        export();
                    } catch (IOException e) {
                        e.printstacktrace();
                    }
                    break;
            }
            return false;
        }
    });
}
项目:TimeMachine    文件:DrawerDelegate.java   
@Nullable private OnNavigationItemSelectedListener getParent() {
    Activity activity = getActivity();
    if (activity instanceof OnNavigationItemSelectedListener) {
        return (OnNavigationItemSelectedListener) activity;
    }
    return null;
}
项目:bubble    文件:MainActivity.java   
private void setupNavigationView(NavigationView view) {
    view.setNavigationItemSelectedListener(new OnNavigationItemSelectedListener() {
        @Override
        public boolean onNavigationItemSelected(MenuItem menuItem) {
            if (mCurrentNavItem == menuItem.getItemId()) {
                mDrawerLayout.closeDrawers();
                return true;
            }

            switch (menuItem.getItemId()) {
                case R.id.drawer_menu_library:
                    setFragment(new LibraryFragment());
                    break;
                case R.id.drawer_menu_browser:
                    setFragment(new browserFragment());
                    break;
                case R.id.drawer_menu_about:
                    setTitle(R.string.menu_about);
                    setFragment(new AboutFragment());
                    break;
            }

            mCurrentNavItem = menuItem.getItemId();
            menuItem.setChecked(true);
            mDrawerLayout.closeDrawers();
            return true;
        }
    });
}
项目:Red-Calorie    文件:DrawerView.java   
public void setNavigationItemSelectedListener(@Nullable OnNavigationItemSelectedListener listener) {
    navigationView.setNavigationItemSelectedListener(listener);
}
项目:C.    文件:MyMenuFragment.java   
@Override
  public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {
      View view = inflater.inflate(R.layout.fragment_menu,container,false);



      //得到左侧的列表
      NavigationView navigationView = (NavigationView) view.findViewById(R.id.vNavigation);
      //设置监听
      navigationView.setNavigationItemSelectedListener(new OnNavigationItemSelectedListener() {

    @Override
    public boolean onNavigationItemSelected(MenuItem menuItem) {
        String title = (String) menuItem.getTitle();
        //Toast.makeText(getActivity(),"您点击了 " + title,Toast.LENGTH_SHORT).show();
        switch (title) {
        case "首页":
            Toast.makeText(getActivity(),"这已经是首页了,你再点试试看?",Toast.LENGTH_SHORT).show();
            break;
        case "随手记":
            Intent intent1 = new Intent(getActivity(),MemoActivity.class);
            startActivity(intent1);
            MainActivity.handler.sendEmptyMessage(1);//通知关闭左侧栏
            break;
        case "便签":
            Intent intent2 = new Intent(getActivity(),AtyList.class);
            startActivity(intent2);
            MainActivity.handler.sendEmptyMessage(1);//通知关闭左侧栏
            break;

        case "天气":
            Intent intent4 = new Intent(getActivity(),WeatherActivity.class);
            startActivity(intent4);
            MainActivity.handler.sendEmptyMessage(1);//通知关闭左侧栏
            break;
        case "关于":
            Toast.makeText(getActivity(),"这里没什么东西~",Toast.LENGTH_LONG).show();
            MainActivity.handler.sendEmptyMessage(1);//通知关闭左侧栏
            break;
        default:
            break;
        }
        return false;
    }
});

      return  setupReveal(view) ;
  }
项目:TimeMachine    文件:DrawerDelegate.java   
/**
 * Attach the fragment to hold the drawer and toolbar
 *
 * @param parent a Activity that extends AppCompatActivity & OnNavigationItemSelectedListener
 * @return {@link DrawerDelegate}
 */
public static <ParentActivity extends AppCompatActivity & OnNavigationItemSelectedListener> DrawerDelegate attach(
    @Nullable ParentActivity parent) {
    return attach(parent.getSupportFragmentManager());
}

今天关于iphone – UINavigationItem titleView的位置的分享就到这里,希望大家有所收获,若想了解更多关于android – NavigationView OnNavigationItemSelectedListener未被调用、android – NavigationView setNavigationItemSelectedListener此API标记为支持库的内部,不应从应用程序访问、android.support.design.widget.BottomNavigationView.OnNavigationItemSelectedListener的实例源码、android.support.design.widget.NavigationView.OnNavigationItemSelectedListener的实例源码等相关知识,可以在本站进行查询。

本文标签: