Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android碎片行为怪异_Android_Android Layout_Android Fragments_Fragment_Android 3.0 Honeycomb - Fatal编程技术网

Android碎片行为怪异

Android碎片行为怪异,android,android-layout,android-fragments,fragment,android-3.0-honeycomb,Android,Android Layout,Android Fragments,Fragment,Android 3.0 Honeycomb,activity_main.xml如下所示 <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" > <Button android:id

activity_main.xml如下所示

<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" >

<Button 
    android:id="@+id/button_one_activity_one"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="First Button"
    />

<fragment
android:name="fragments.FirstFragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/first_fragment" />    

    <Button 
    android:id="@+id/button_two_activity_one"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Second Button"
    />        
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@color/grey" >"

<TextView
    android:id="@+id/text_view_one_fragment"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Text View one" />

<TextView
    android:id="@+id/text_view_two_fragment"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Text View two" />

<TextView
    android:id="@+id/text_view_three_fragment"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Text View three" />

</LinearLayout>
package fragments;


import com.example.testfragmentshoneycomb.R;

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class FirstFragment extends Fragment{

@Override
public void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.first_fragment, container, false);
    return view;
}

}
首先_fragment.xml是这样的

<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" >

<Button 
    android:id="@+id/button_one_activity_one"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="First Button"
    />

<fragment
android:name="fragments.FirstFragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/first_fragment" />    

    <Button 
    android:id="@+id/button_two_activity_one"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Second Button"
    />        
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@color/grey" >"

<TextView
    android:id="@+id/text_view_one_fragment"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Text View one" />

<TextView
    android:id="@+id/text_view_two_fragment"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Text View two" />

<TextView
    android:id="@+id/text_view_three_fragment"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Text View three" />

</LinearLayout>
package fragments;


import com.example.testfragmentshoneycomb.R;

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class FirstFragment extends Fragment{

@Override
public void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.first_fragment, container, false);
    return view;
}

}
它只显示第一个按钮,屏幕上没有其他显示。如果我从activity_main.xml中删除第一个按钮,它将显示片段,但不显示第二个按钮


Min SDK版本是11,构建目标是android 4.1,因为默认情况下LinearLayout的方向是水平的。因此,整个屏幕宽度由
第一个按钮和
片段捕获

你确定你想这样看吗

First_Button              Fragment            Second_Button
如果是,则使用
layout\u weight
。如果否,则将
orientation=vertical
指定给LinearLayout,它将显示布局输出

First_Button              
Fragment
Second_Button

将LinearLayout方向设置为垂直,默认情况下为水平。
仔细阅读文档

在活动布局中设置
android:orientation=“vertical”

使用以下布局:

   <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:orientation="vertical" >

<Button 
    android:id="@+id/button_one_activity_one"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="First Button"
    />

<fragment
android:name="fragments.FirstFragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/first_fragment" />    

    <Button 
    android:id="@+id/button_two_activity_one"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Second Button"
    />        
</LinearLayout>


请解释OP存在的问题。默认情况下,线性布局采用水平方向。在按钮视图中,您已经设置了android:layout\u width=“match\u parent”,这意味着按下fragment&2nd按钮将填充整个宽度。所以碎片和第二个按钮不可见。哇!!需要添加到您的答案中而不是评论:)非常感谢,我不知道默认行为