我需要使用微调器作为菜单。但问题是,当我单击一个项目时,它会被选中并在该位置显示我想要避免的行为。其次,无论选择了哪些项目,我都需要第一个项目始终是标题,如下图所示:
正常情况下的微调器
- 当用户点击微调器时
现在,如果用户点击任何项目标题不应更改,但应选择项目。我已经使用它实现了它,ListView
但我认为我必须使用正确的 Android 组件(如果真的可能的话)。提前致谢。
我已经使用以下代码解决了上述问题,但需要使用微调器。
布局文件
<RelativeLayout
android:id="@+id/header_main"
style="@style/layout_f_w"
android:layout_alignParentTop="true"
android:layout_centerInParent="true"
android:background="@color/heading_color" >
<TextView
android:id="@+id/headingText"
style="@style/layout_wrap"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="MATCH CENTER"
android:textColor="@color/text_color_white"
android:textSize="15sp"
android:textStyle="bold" />
<ImageButton
android:id="@+id/matchcenter_menu"
style="@style/layout_wrap"
android:layout_centerVertical="true"
android:layout_toRightOf="@id/headingText"
android:background="@android:color/transparent"
android:paddingTop="20dp"
android:src="@drawable/drp_down_menu" />
</RelativeLayout>
……
<ListView
android:id="@+id/mainscreen_menu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:background="@android:color/black"
android:cacheColorHint="#00000000"
android:divider="@android:color/white"
android:dividerHeight="1dp"
android:drawSelectorOnTop="false"
android:listSelector="@android:color/transparent" />
设置视图。
TextView headingText = (TextView)findViewById(R.id.headingText);
headingText.setTypeface(Utils.getCustomFont(LiveScoreCrowdScreen.this));
headingText.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
showMatchCenterMenu(v);
}
});
……
matcheCenterMenu = (ImageButton)findViewById(R.id.matchcenter_menu);
matcheCenterMenu.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
showMatchCenterMenu(v);
}
});
……
mainscreenMenu = (ListView)findViewById(R.id.mainscreen_menu);
……
public void showMatchCenterMenu(View btn) {
ScreenMenuItemsAdapter adapter = null;
mainscreenMenu = (ListView)findViewById(R.id.mainscreen_menu);
adapter = new ScreenMenuItemsAdapter(LiveScoreCrowdScreen.this, getResources().getStringArray(R.array.livescorecard_menuitems));
mainscreenMenu.setAdapter(adapter);
mainscreenMenu.setVisibility(View.VISIBLE);
mainscreenMenu.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View row, int position, long id) {
CCApplication.isMenuOpened = false;
switch (position) {
case 0:// Refresh
//refresh screen
break;
case 1:// Highlights
//get highlights
break;
case 2:// Preferences
//get preferences
break;
case 3:// current time
// get current time
break;
}
mainscreenMenu.setVisibility(View.GONE);
}
});
}