在我的NavigationView中,我有一个标题布局,其id为'viewId',带有活动按钮.要设置这些按钮,我在活动中执行以下操作onPostCreate:
final View panel = findViewById(R.id.viewId);
panel.setOnClickListener(new View.OnClickListener() {
... setup goes here ...
});
Run Code Online (Sandbox Code Playgroud)
使用新版本的android支持库(23.1.0),无法找到视图,它返回null.以前的版本运行良好.这是一个错误还是我使用此功能错了?如果是这样,如何访问标题布局并向其添加行为?
android android-support-library android-design-library navigationview
我尝试了从新的android支持设计库中的navigationView.我想要一个动态的headerview.基本上,我的标题视图将显示当天的报价.我喜欢大约10个引号,我想随机选择一个引用并在headerView的textview中显示.我还想为headerView添加onClick方法.
现在,我没有看到任何以编程方式更改headerview布局的可能性.有任何建议来实现吗?
android navigation-drawer android-design-library navigationview androiddesignsupport
我想在导航视图标题的项目中添加onClickListener,例如更改TextView文本或为ImageView设置图像.
我正在使用具有标题布局的NavigationView,该标题布局包含我试图在我的Activity中访问的textview,它返回null.
试着花很多时间在上面,没有希望.
我的活动
public class MainActivity extends AppCompatActivity {
private DrawerLayout mDrawerLayout;
RelativeLayout headerLL;
ImageView userIV;
TextView usernameTV;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
headerLL = (RelativeLayout) findViewById(R.id.navHeaderLL);
userIV = (ImageView) findViewById(R.id.userDPIV);
usernameTV = (TextView) findViewById(R.id.usernameTV);
//getting error here
usernameTV.setText("Ashiq");
initializeDrawer();
}
}
Run Code Online (Sandbox Code Playgroud)
activity_mail.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:fitsSystemWindows="true"
tools:context=".MainActivity">
<include layout="@layout/include_list_viewpager"/>
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header"
app:menu="@menu/drawer_view"
/>
</android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)
nav_header.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="192dp"
xmlns:tools="http://schemas.android.com/tools"
android:background="?attr/colorPrimaryDark" …Run Code Online (Sandbox Code Playgroud) 当我使用支持库23.0.0运行我的项目时,我没有收到任何错误,但今天当我将支持库更新到23.1.0时,我的活动代码在使用支持库的两个版本中完全相同.我收到以下错误:
10-27 14:56:31.734 26271-26271/com.galleri5.android E/AndroidRuntime: FATAL EXCEPTION: main
10-27 14:56:31.734 26271-26271/com.galleri5.android E/AndroidRuntime: Process: com.galleri5.android, PID: 26271
10-27 14:56:31.734 26271-26271/com.galleri5.android E/AndroidRuntime: java.lang.IllegalArgumentException: Target must not be null.
10-27 14:56:31.734 26271-26271/com.galleri5.android E/AndroidRuntime: at com.squareup.picasso.RequestCreator.into(RequestCreator.java:618)
10-27 14:56:31.734 26271-26271/com.galleri5.android E/AndroidRuntime: at com.squareup.picasso.RequestCreator.into(RequestCreator.java:601)
10-27 14:56:31.734 26271-26271/com.galleri5.android E/AndroidRuntime: at com.galleri5.android.activities.HomeActivity$3.success(HomeActivity.java:155)
10-27 14:56:31.734 26271-26271/com.galleri5.android E/AndroidRuntime: at com.galleri5.android.activities.HomeActivity$3.success(HomeActivity.java:151)
10-27 14:56:31.734 26271-26271/com.galleri5.android E/AndroidRuntime: at retrofit.CallbackRunnable$1.run(CallbackRunnable.java:45)
10-27 14:56:31.734 26271-26271/com.galleri5.android E/AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:739)
10-27 14:56:31.734 26271-26271/com.galleri5.android E/AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:95)
10-27 14:56:31.734 26271-26271/com.galleri5.android E/AndroidRuntime: at android.os.Looper.loop(Looper.java:135)
10-27 14:56:31.734 26271-26271/com.galleri5.android E/AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5254) …Run Code Online (Sandbox Code Playgroud) android ×5