我只是尝试将一个导航抽屉菜单项设置为特定视图。我分别在左侧和右侧添加了两个textView。和SwitchCompat。但SwitchCompat无法正常工作。我只想尝试一条消息进行测试。
我搜索了很多资源,却找不到那样的东西。这是不好的做法吗?还是不好用?
这是我的代码:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="4"
android:text="Pay" />
<android.support.v7.widget.SwitchCompat
android:id="@+id/paymentMethod"
android:layout_width="35dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:theme="@style/SelectionSwitch" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="right"
android:layout_weight="4"
android:text="Card" />
</LinearLayout>
关于我的活动:
public boolean onNavigationItemSelected(MenuItem item) {
int id = item.getItemId();
toolbarMenu.findItem(R.id.menu_item_search).setVisible(id == R.id.nav_camera);
Fragment fragment = null;
Class fragmentClass = null;
if (id == R.id.nav_camera) {
View view = item.getActionView();
SwitchCompat payMethod = view.findViewById(R.id.paymentMethod);
payMethod.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
Toast.makeText(ActivityHome.this, "TEST", Toast.LENGTH_SHORT).show();
}
实际上点击超过10次后它可以工作,但无法理解原因。
答案 0 :(得分:1)
创建一个布局,然后添加到菜单xml:
<item
android:id="@+id/nav_datasaver"
app:actionLayout="@layout/menu_item_datasaver" />
menu_item_datasaver是在布局展开中创建并使用菜单xml的线性布局
答案 1 :(得分:1)
<group android:checkableBehavior="single">
<item
android:id="@+id/nav_download"
android:icon="@drawable/ic_download"
android:title="SAVED OFFLINE" />
<item
android:id="@+id/nav_referral"
app:actionLayout="@layout/menu_item_refer" />
<item
android:id="@+id/nav_contest"
app:actionLayout="@layout/menu_item_contest" />
<!-- <item
android:id="@+id/nav_login_button"
android:icon="@drawable/ic_download"
android:title="LOGOUT"/>-->
</group>