当我点击列表视图标题中的按钮时,我正在查找如何显示菜单。 菜单包含按钮,复选框,微调器和textview。 然后我无法使用弹出菜单。我猜。我曾尝试使用弹出窗口执行此操作,但是当我打开弹出窗口时,如果滚动窗口,请不要保持锚定到按钮。 我想要的是在列表视图项目上显示菜单并锚定到按钮的底部,当我滚动列表视图时,菜单仍然固定在按钮上。 主要问题是弹出窗口检查当前活动而不是。 有什么想法吗?
非常感谢!
答案 0 :(得分:0)
MainActivity.java
public class MainActivity extends AppCompatActivity {
private ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ListView mDrawerList = (ListView) findViewById(R.id.lw1);
final View header = getLayoutInflater().inflate(R.layout.header_lw, mDrawerList, false);
mDrawerList.addHeaderView(header, null, false);
ArrayList<String> itemss = new ArrayList<String>();
itemss.add("Title1");
itemss.add("Title2");
itemss.add("Title3");
itemss.add("Title4");
itemss.add("Title5");
itemss.add("Title6");
itemss.add("Title7");
itemss.add("Title8");
itemss.add("Title9");
itemss.add("Title10");
itemss.add("Title11");
itemss.add("Title12");
itemss.add("Title13");
itemss.add("Title14");
itemss.add("Title15");
itemss.add("Title16");
itemss.add("Title17");
itemss.add("Title18");
itemss.add("Title19");
itemss.add("Title20");
itemss.add("Title21");
itemss.add("Title22");
adapter=new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1,
itemss);
mDrawerList.setAdapter(adapter);
final Button btn1 = (Button)findViewById(R.id.button);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LayoutInflater layoutInflater = (LayoutInflater) mDrawerList.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View popupView = layoutInflater.inflate(R.layout.option_menu, null);
final PopupWindow popupWindow = new PopupWindow(
popupView,
RelativeLayout.LayoutParams.MATCH_PARENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
popupWindow.showAsDropDown(btn1);
}
});
}
}
activity_main.xml中
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
android:weightSum="1">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight=".15"></RelativeLayout>
<ListView
android:layout_width="match_parent"
android:layout_height="0dp"
android:id="@+id/lw1"
android:choiceMode="none"
android:focusable="false"
android:headerDividersEnabled="false"
android:layout_weight=".85"
android:divider="@null"
android:dividerHeight="0dp"
android:listSelector="#00000000"
android:cacheColorHint="#00000000" />
</LinearLayout>
option_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="1"
android:id="@+id/lnOption"
android:paddingLeft="10dp"
android:paddingRight="10dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:paddingTop="15dp">
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cb1"
android:id="@+id/cbAllOff"
android:checked="false"
android:buttonTintMode="src_atop"/>
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cb2"
android:id="@+id/cbAllSpecOff"
android:layout_below="@+id/cbAllOff"
android:checked="false"
android:buttonTintMode="src_atop"/>
</RelativeLayout>
</LinearLayout>
header_lw.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="1">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Menu"
android:id="@+id/button"
android:layout_gravity="center_horizontal" />
</LinearLayout>
lw_item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="1">
<RelativeLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight=".4">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Medium Text"
android:id="@+id/txt1"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
</RelativeLayout>
<RelativeLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight=".6"></RelativeLayout>
</LinearLayout>
option_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="1"
android:id="@+id/lnOption"
android:paddingLeft="10dp"
android:paddingRight="10dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:paddingTop="15dp">
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cb1"
android:id="@+id/cbAllOff"
android:checked="false"
android:buttonTintMode="src_atop"/>
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cb2"
android:id="@+id/cbAllSpecOff"
android:layout_below="@+id/cbAllOff"
android:checked="false"
android:buttonTintMode="src_atop"/>
</RelativeLayout>
</LinearLayout>
当我点击按钮时,弹出窗口显示锚定到按钮。如果我滚动listView并且标题中的按钮变得不可见,则弹出窗口将覆盖操作栏。有一种方法可以在列表项上显示菜单选项并锚定到标题中的按钮吗?
谢谢!