gpt4 book ai didi

android - 带有 DialogFragment 的上下文操作栏

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:47:39 26 4
gpt4 key购买 nike

我一直在尝试实现上下文操作栏和对话框 fragment 。类似于 android 中的下载小部件。

enter image description here

我试图在主题中将 android:windowActionModeOverlay 设置为 true。

但是好像不行。有什么办法可以实现吗??

最佳答案

您在屏幕截图中看到的下载窗口实际上是一个使用 @android:style/Theme.Holo.Dialog 主题的 Activity,这使它看起来像一个对话框.要获得与下载窗口相同的外观,您的 Activity 只需使用相同的主题。

您可以像这样在您的 list 中设置这个主题:

<activity android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.Holo.Dialog" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

不包括字符串和可绘制资源的示例实现。

list :

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mceley.dialog.example"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="17" />

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.Holo.Dialog" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

</manifest>

主要 Activity .java:

package com.mceley.dialog.example;

import android.app.Activity;
import android.os.Bundle;
import android.view.ActionMode;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;

public class MainActivity extends Activity implements OnClickListener {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_layout);

findViewById(R.id.context_button).setOnClickListener(this);
}

@Override
public void onClick(View v) {
ExampleMode mode = new ExampleMode();
startActionMode(mode);
}

public class ExampleMode implements ActionMode.Callback {

@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
return false;
}

@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
mode.getMenuInflater().inflate(R.menu.main_menu, menu);
return true;
}

@Override
public void onDestroyActionMode(ActionMode mode) {

}

@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
return false;
}
}
}

main_layout.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center" >

<Button android:id="@+id/context_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/show_context_bar" />

</LinearLayout>

主菜单.xml:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/action_settings"
android:showAsAction="never"
android:title="@string/action_settings"/>
</menu>

结果:

Dialog Example App

关于android - 带有 DialogFragment 的上下文操作栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15862579/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com