【问题标题】:Android Studio generated Navigation Drawer's HeaderAndroid Studio 生成 Navigation Drawer 的 Header
【发布时间】:2015-11-10 15:46:32
【问题描述】:

我使用 Android Studio 通过 New -> Activity -> Navigation Drawer Activity 生成了一个导航抽屉。作为 Android Studio 的最新功能,我没有通过 Google 找到足够的示例来访问标题中的 TextView。我想动态更改标题标题。

DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
TextView tv = (TextView) drawer.findViewById(R.id.tvNavHeader);

在 onCreate 对我没有帮助。

【问题讨论】:

    标签: android android-studio navigation-drawer


    【解决方案1】:

    NavigationView 在 v23.1.0 中有一个 bug。您无法在onCreate 方法中访问HeaderView 中包含的视图。

    一种解决方法是膨胀 HeaderView 并以编程方式将其添加到 onCreate 方法中,如下所示:

    public class MainActivity extends AppCompatActivity {
    
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main_activity);
    
            Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
            setSupportActionBar(toolbar);
    
            View header = LayoutInflater.from(this).inflate(R.layout.nav_header_view, null);
            navigationView.addHeaderView(header);
    
            TextView tv = (TextView) header.findViewById(R.id.tvNavHeader);
        }
    }
    

    【讨论】:

      【解决方案2】:

      不再需要为HeaderView 充气。

      View header = navigationView.getHeaderView(0);
      TextView text = (TextView) header.findViewById(R.id.textView);
      

      这适用于一个标题。如果您有多个,只需浏览 Mattia 提供的google issue

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-06-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多