三星Galaxy Nexus S3发布渲染视图对象(多个问题)

时间:2015-07-17 23:28:09

标签: android

  1. 设备:三星Galaxy Nexus
  2. 安装:设备大多是空白的,仅用于开发
  3. Android版本:4.2.2
  4. 所以我今天开始了一个项目。我注意到当我使用默认屏幕键盘键入EditText object时,不仅我设置的提示不会消失,而且我输入的每个字符的两边都有白色垂直线。

    我搞砸了属性(虽然我除了通过XML添加EditText的最小值之外几乎没有做任何事情)。过了一会儿,我把我的apk发送给同事并让他在他的设备上运行它(不是Galaxy Nexus)。他发给我的屏幕上显示没有这样的错误。我决定忽略它并继续前进。

    我剩下的时间都是奇怪的问题,这些问题确实不应该发生。一个例子是我有一个带有片段的Activity,在一个任务后我试图简单地切换出片段。 (它们以编程方式添加到活动布局中的FrameLayout ViewGroup(在其他方法失败后))。将添加新片段,但旧片段仍会显示。按home / recent并返回应用程序删除了根本不应显示的片段。然后我决定简单地将我正在使用的布局文件更改为活动的setContentView,而不是切换活动。结果相同。我尝试自己对contentView View进行充气,然后调用View.setVisible(View.GONE)(稍后再尝试View.INVISIBLE)。没有运气。另外值得一提的是,无效调用(几乎我能想到的任何内容)也没有使删除的内容消失。

    所以我想我的问题是什么可能导致所有这些混乱?有没有人遇到这样的问题?

    当前活动代码(目前唯一的方法是onCreate()):

    private View layout1, layout2;
    
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        super.requestWindowFeature(Window.FEATURE_NO_TITLE);
    
        LayoutInflater factory = getLayoutInflater();
        layout1 = factory.inflate(R.layout.building_list, null);
        layout2 = factory.inflate(R.layout.activity_files, null);
        super.setContentView(layout1);
    
        new Thread(new Runnable()
        {
            @Override
            public void run()
            {
                try{Thread.sleep(1000);}
                catch(Exception e){}
    
                runOnUiThread(new Runnable()
                {
                    @Override
                    public void run()
                    {
                        FilesActivity.this.setContentView(layout2);
                    }
                });
            }
        }).start();
    }
    

    layout1的XML代码:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/build_list_frag"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    
        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_above="@+id/pin_wheel"
            android:layout_centerHorizontal="true"
            android:layout_marginBottom="44dp"
            android:text="@string/building_list_text"
            android:textAppearance="?android:attr/textAppearanceLarge" />
    
        <ProgressBar
            android:id="@+id/pin_wheel"
            style="@android:style/Widget.ProgressBar"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true" />
    </RelativeLayout>
    

    layout2的XML代码:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    
        <TextView
            android:id="@+id/files_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="28dp"
            android:text="@string/files_title"
            android:textAppearance="?android:attr/textAppearanceLarge" />
    
        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:text="List Of Files Go here"
            android:textAppearance="?android:attr/textAppearanceLarge" />
    </RelativeLayout>
    

1 个答案:

答案 0 :(得分:0)

如果其他人有奇怪的渲染问题。如文字显示不当。已删除的View个对象会继续显示(并且我确定还有很多对象)。您应该尝试将应用程序的基本主题更改为不同的(最有可能的是,对于其他人,这是在res / values / styles.xml中)。还要检查清单文件中列出的所有活动是否实际使用了您认为正在使用的主题(如果您没有为每个活动设置主题,请确保需要特定样式的View个对象具有被设定为这样)。

示例:

    <activity
        android:name=".MainActivity"
        android:configChanges="orientation|keyboardHidden|screenSize"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" > <!-- this line, if you are using a custom theme it should be used here-->
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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