相关疑难解决方法(0)

java.lang.IllegalStateException:ActionBarImpl只能与兼容的窗口装饰布局一起使用

在最后几天,我确实看到增加的错误消息听起来相同.我不使用平板电脑ActionBar - 我只是为手机开发.

这些崩溃的原因是什么?

这是一个完整的痕迹:

java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=8995, result=0, data=null} to activity {xy.yyyy.app.android/xy.yyyy.app.Main}: java.lang.IllegalStateException: ActionBarImpl can only be used with a compatible window decor layout
at android.app.ActivityThread.deliverResults(ActivityThread.java:2818)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:2861)
at android.app.ActivityThread.access$1000(ActivityThread.java:122)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1054)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:132)
at android.app.ActivityThread.main(ActivityThread.java:4123)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:491)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalStateException: ActionBarImpl can only be used with a compatible window decor layout
at com.android.internal.app.ActionBarImpl.init(ActionBarImpl.java:214)
at com.android.internal.app.ActionBarImpl.<init>(ActionBarImpl.java:200)
at android.app.Dialog.show(Dialog.java:255)
at xy.yyyy.app.MyProgressDialog.show(MyProgressDialog.java:33)
at xy.yyyy.app.MyProgressDialog.show(MyProgressDialog.java:23)
at xy.yyyy.app.Main$FetchTask.onPreExecute(Main.java:19) …
Run Code Online (Sandbox Code Playgroud)

android progressdialog illegalstateexception

28
推荐指数
0
解决办法
5474
查看次数

使用操作栏对话主题活动

在v3 android应用程序中,具有对话框主题的活动(例如:Theme.Holo.Dialog)是否可以拥有操作栏?我尝试调整windowIsFloating属性,但是这导致了一个异常的"actionbarimpl not compatible",表明当前的对话框主题不支持动作栏?

它应该是可能的,因为三星Galaxy Tab上的几个应用程序都有操作栏的对话框.

谢谢.

android

10
推荐指数
1
解决办法
5274
查看次数

带选项卡的活动对话框

我正在构建选项卡的应用程序.

  1. 点击按钮我试图用主题显示活动(说A)@android:style/Theme.Dialog
  2. 内部活动A我正在创建操作栏并添加4个选项卡.
  3. 点击标签我想改变片段.

一切正常,直到我不应用主题@android:style/Theme.Dialog 后应用主题我得到例外:

 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ebuilder/com.ebuilder.views.MyTabActivity}: java.lang.NullPointerException
Run Code Online (Sandbox Code Playgroud)

在以下行:

actionBar.addTab(actionBar.newTab().setCustomView(R.layout.tab_home).
                    setTabListener(homeListener), 0);
Run Code Online (Sandbox Code Playgroud)

我有两个问题:

1.如果我应用主题对话框会出现什么问题?

我的做法是对的吗?

如果有人知道另一种方法,请告诉我.

Edit1: *清单文件*

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

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

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".FragmentInsideFragmentTestActivity"
            android:label="@string/app_name"
            android:theme="@style/Theme.CustomDialog" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

</manifest>
Run Code Online (Sandbox Code Playgroud)

RES /值/ style.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="Theme.CustomDialog" parent="android:style/Theme.Dialog">
            <item name="android:windowNoTitle">false</item>
            <item name="android:windowActionBar">true</item>        
    </style>
</resources>
Run Code Online (Sandbox Code Playgroud)

EDIT2

05-03 …
Run Code Online (Sandbox Code Playgroud)

android android-actionbar android-tabs

9
推荐指数
1
解决办法
3153
查看次数

在平板电脑上将活动显示为叠加窗口

如何在平板电脑上呈现活动作为叠加窗口?这方面的一个例子是新的Google+应用,如下所示:

在此输入图像描述

重要的是,我希望ActionBar成为窗口的一部分,并且下面的Activity将变暗,如屏幕截图所示.

谢谢

android tablet android-activity

9
推荐指数
1
解决办法
4265
查看次数

如何在Android中将我的活动显示为对话框?

我正在开发我的第一个Android应用程序,并且正在尝试设计我的活动.最终,我希望我的活动与对话框看起来一样.我在我的所有活动中Theme.Dialog使用以下代码给出了样式AndroidManifest.xml:

<application
    android:icon="@drawable/group"
    android:label="@string/app_name" 
    android:theme="@android:style/Theme.Dialog">
</application>
Run Code Online (Sandbox Code Playgroud)

这为我的活动提供了"浮动"外观和对话框的边框,但不是样式标题.标题与一般对话框背景具有相同的颜色和外观,而不是"真实"对话框中的"标题"背景和边框.请注意,在两个示例中,标题下面都有一个漂亮的边框,而在第二个示例中,它有一个渐变背景.

有没有办法确保我的活动标题以某种方式继承系统对话框标题,以便有效地复制我的活动对话框的外观 - 除了边框和Theme.Dialog样式附带的"浮动" ?

请注意,我不想叫我的活动从另一个对话框,我只是希望它LOOK像dilaog,即使它在响应加载到一个意图按我的清单的意图过滤器.

对话示例1

对话例2

ADD:有没有什么方法可以让我的活动,当它旋转进来时onCreate(),调用一些方法将自己变成一个实际的对话框?请记住,活动仍然需要能够响应系统中的意图.

android dialog android-activity

8
推荐指数
1
解决办法
3万
查看次数

对DialogFragment执行ActionBar操作

我有一个DialogFragment风格全屏使用setStyle(STYLE_NORMAL, R.style.Theme_App).

DialogFragment精细显示,但后续行动(在homeAsUp在动作条的动作)不起作用.我尝试onOptionsItemSelected在实施中,DialogFragment但它永远不会被调用.

有没有办法在DialogFragment中获取up动作回调,所以我可以解雇它?作为参考,我正在使用ActionBarCompat.

android android-dialogfragment dialogfragment android-actionbar-compat

8
推荐指数
2
解决办法
9603
查看次数

我可以在Android Studio 3.0中设计自定义尺寸活动吗?

通常,活动将显示最大屏幕.我希望显示一个宽度为400px,高度为500px的窗口,但是下面仍然显示一个完整的窗口,为什么?

主要活动

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }
}
Run Code Online (Sandbox Code Playgroud)

activity_main.xml中

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="400px"
        android:layout_height="500px"
        tools:context=".MainActivity">

    <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Hello World OK!"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent"/>

</android.support.constraint.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)

到克柳月

谢谢!但是你的代码不起作用,运行代码后窗口全屏显示.

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val m = windowManager
        val d = m.defaultDisplay
        val p = window.attributes
        p.height = dp2px(this, 500f)
        p.width = dp2px(this, 400f)
        window.attributes = p

    }

    private fun dp2px(context: Context, …
Run Code Online (Sandbox Code Playgroud)

android

8
推荐指数
2
解决办法
274
查看次数

在我的情况下显示Dialog几乎全屏(使用ActionBar和叠加)

我正在使用Android支持包.

我创建了一个对话框:

Dialog dialog = new Dialog(activity, android.R.style.Theme_Translucent_NoTitleBar_Fullscreen);
Run Code Online (Sandbox Code Playgroud)

由于我希望对话框以全屏显示,所以我将主题Theme_Translucent_NoTitleBar_Fullscreen应用于它并且它起作用.

我有以下两个问题:

  1. 我希望我的对话框显示为全屏仍然但是不能覆盖顶部的ActionBar,那么我应该使用什么主题?

  2. 如何使用灰色叠加层来显示对话框所覆盖的视图(假设我的第一个qustion已经解决)?

android android-widget android-emulator android-intent android-layout

6
推荐指数
1
解决办法
1958
查看次数

requestWindowFeature(Window.FEATURE_NO_TITLE); 导致应用程序崩溃?

添加此行时,应用程序崩溃

`requestWindowFeature(Window.FEATURE_NO_TITLE);

可能解决方案很简单,但我真的不知道该修复它的人.

Java代码:

public class GLSurfaceCameraSurfaceDemo2Activity extends Activity {
/** Called when the activity is first created. */

GLSurfaceView glSurfaceView;
FrameLayout fl01;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    requestWindowFeature(Window.FEATURE_NO_TITLE);

}
Run Code Online (Sandbox Code Playgroud)

}

XML文件:

<FrameLayout 
        android:id="@+id/fl01" 
        android:orientation="horizontal" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent"/>  
Run Code Online (Sandbox Code Playgroud)

android android-framelayout

2
推荐指数
1
解决办法
7861
查看次数

如何向 DialogFragment 添加操作栏?

如何向 中添加操作栏DialogFragment?我找到了一种方法,可以按照我们需要的方式设置 Activity 的样式,然后将其显示为对话框,如以下链接中的ActionBar in a DialogFragment我需要在适当的DialogFragment. 是否可以?

android-dialogfragment android-actionbar

2
推荐指数
1
解决办法
5062
查看次数