Android 碎片赢了';不在活动中出现

Android 碎片赢了';不在活动中出现,android,android-layout,android-fragments,Android,Android Layout,Android Fragments,我正在尝试创建一个屏幕,屏幕上有一个带有3个按钮的片段,下面有一个文本框,但当我运行应用程序时,没有看到任何东西。 我是Android新手,所以我认为我缺少一些基本的东西。 我错过了什么 编辑:谢谢你的回答。问题是按钮的大小是看不见的。 活动确实加载了片段,而不需要调用片段管理器 哦,学习新框架的乐趣:) 谢谢大家! 活动\u main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

我正在尝试创建一个屏幕,屏幕上有一个带有3个按钮的片段,下面有一个文本框,但当我运行应用程序时,没有看到任何东西。 我是Android新手,所以我认为我缺少一些基本的东西。 我错过了什么

编辑:谢谢你的回答。问题是按钮的大小是看不见的。 活动确实加载了片段,而不需要调用片段管理器

哦,学习新框架的乐趣:)

谢谢大家!

活动\u 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"
android:orientation="vertical">

<fragment
    android:id="@+id/buttons"
    android:layout_width="match_parent"
    android:layout_height="400dp"
    class="com.thenoisemargins.eyaldagiavdor.thisdaybefore.ButtonsFragment" />

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="100dp">

    <TextView
        android:layout_width="48dp"
        android:layout_height="45dp"
        android:id="@+id/historicalQuoteTextView"
        android:layout_gravity="center_vertical"
        android:textAlignment="center"
        android:textColor="#FFFFFFFF"
        android:text="Quote"
        android:layout_centerVertical="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

</FrameLayout>
    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
<at.markushi.ui.CircleButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:clickable="true"
    android:text="@string/this_day_before"
    android:id="@+id/thisDayBeforeButton"
    app:cb_color="#99CC00"
    app:cb_pressedRingWidth="8dip" />

<at.markushi.ui.CircleButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:clickable="true"
    android:text="@string/choose_date"
    android:id="@+id/ChooseDateButton"
    app:cb_color="#99CC00"
    app:cb_pressedRingWidth="8dip" />

<at.markushi.ui.CircleButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:clickable="true"
    android:text="@string/random_date"
    android:id="@+id/RandomDateButton"
    app:cb_color="#99CC00"
    app:cb_pressedRingWidth="8dip" />
</LinearLayout>
按钮片段.java

public class MainActivity extends ActionBarActivity {

    private ButtonsFragment mFragment;

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

        /*
        FragmentManager fragmentManager = getFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        mFragment =  new ButtonsFragment();
        fragmentTransaction.add(R.id.buttons, mFragment);
        fragmentTransaction.commit();
               */

        mFragment = (ButtonsFragment) getFragmentManager()
                .findFragmentById(R.id.buttons);


    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}
public class ButtonsFragment extends Fragment {

private at.markushi.ui.CircleButton mThisDayBeforeButton;
private at.markushi.ui.CircleButton mChooseDateButton;
private at.markushi.ui.CircleButton mRandomDateButton;


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    View rootView = inflater.inflate(R.layout.buttons_fragment, container, false);



    return rootView;
}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    mThisDayBeforeButton = (at.markushi.ui.CircleButton) getActivity().findViewById(R.id.thisDayBeforeButton);
    mChooseDateButton = (at.markushi.ui.CircleButton) getActivity().findViewById(R.id.ChooseDateButton);
    mRandomDateButton = (at.markushi.ui.CircleButton) getActivity().findViewById(R.id.RandomDateButton);

}

}

删除对给定部分的注释。为了查看片段,您必须使用fragmentTransaction在fragmentManager中添加片段

  mFragment = (ButtonsFragment) getFragmentManager()
                .findFragmentById(R.id.buttons);

            FragmentManager fragmentManager = getFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            mFragment =  new ButtonsFragment();
            fragmentTransaction.add(R.id.buttons, mFragment);
            fragmentTransaction.commit();
如果有用,试试这个

FragmentManager fragmentManager = getFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            mFragment =  new ButtonsFragment();
            fragmentTransaction.add(R.id.buttons, mFragment);
            fragmentTransaction.commit();
上面的代码替换为这个,并尝试可能是工作

FragmentManager fragmentManager = getFragmentManager();
            fragmentManager.beginTransaction()
                    .replace(R.id.buttons, fragment).commit();

如果您想直接在xml中显示片段

<fragment
android:id="@+id/buttons"
android:layout_width="match_parent"
android:layout_height="400dp"
class="com.thenoisemargins.eyaldagiavdor.thisdaybefore.ButtonsFragment" />

希望这有帮助

还要检查您是否在Fragment类中扩展了android.support.v4.app.Fragment。
FrameLayout f = (FrameLayout) findViewById(R.id.fram);
    getSupportFragmentManager().beginTransaction().replace(R.id.fram, new ButtonsFragment()).commit();