在Fragment里面使用Caldroid

时间:2015-07-20 13:28:30

标签: android android-fragments caldroid

我正在使用Caldroid库。我想在我的布局中使用它。我的布局还包括textview。但是当我使用带有framelayout的Caldroid时,其他视图就消失了。

以下是使用Caldroid和FrameLayout的XML和Java代码。

<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"
         tools:context="com.birfincankafein.mpandroidchart.CalendarFragment"
          android:orientation="vertical">

<!-- TODO: Update blank fragment layout -->

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:id="@+id/container_caldroid"
    android:layout_weight="0.4">
</FrameLayout>

<ImageView
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:id="@+id/imageView_divider"
    android:layout_below="@+id/container_caldroid"
    android:focusableInTouchMode="false"
    android:layout_marginTop="2dp"
    android:layout_marginBottom="2dp"
    android:layout_weight="0.1"/>

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@+id/imageView_divider"
    android:background="#ffff00ba"
    android:layout_weight="0.4">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="New Text"
        android:id="@+id/textView_description"
        android:layout_centerVertical="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:background="#ff00ebff"/>
</RelativeLayout>

这是java代码:

mCaldroidFragment = new CaldroidFragment();
    Bundle args = new Bundle();
    args.putInt( CaldroidFragment.START_DAY_OF_WEEK, CaldroidFragment.MONDAY );
    mCaldroidFragment.setArguments( args );
    getActivity().getSupportFragmentManager().beginTransaction().replace( R.id.container_calendar , mCaldroidFragment ).commit();

这就是它的样子: Caldroid

这些是使用Caldroid with fragment的代码。

    <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"
         tools:context="com.birfincankafein.mpandroidchart.CalendarFragment"
          android:orientation="vertical">

<!-- TODO: Update blank fragment layout -->

<fragment
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    class="com.roomorama.caldroid.CaldroidFragment"
    android:id="@+id/container_caldroid"
    android:layout_weight="0.4">
</fragment>

<ImageView
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:id="@+id/imageView_divider"
    android:layout_below="@+id/container_caldroid"
    android:focusableInTouchMode="false"
    android:layout_marginTop="2dp"
    android:layout_marginBottom="2dp"
    android:layout_weight="0.1"/>

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@+id/imageView_divider"
    android:background="#ffff00ba"
    android:layout_weight="0.4">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="New Text"
        android:id="@+id/textView_description"
        android:layout_centerVertical="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:background="#ff00ebff"/>
</RelativeLayout>

并且不需要java代码。它已经初始化了。以下是它的外观: Caldroid

为什么会这样?我想在框架布局中使用这个库。因为我必须手动初始化它。我必须设置一些必要的东西。

Ps:背景颜色用于检测布局的位置。

1 个答案:

答案 0 :(得分:0)

我无法再创造同样的东西。以下代码适用于我。

XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:id="@+id/cal_container"
    android:layout_weight="0.4"/>

<ImageView
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:id="@+id/imageView_divider"
    android:layout_below="@+id/container_caldroid"
    android:focusableInTouchMode="false"
    android:layout_marginTop="2dp"
    android:layout_marginBottom="2dp"
    android:layout_weight="0.1"/>

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@+id/imageView_divider"
    android:background="#ffff00ba"
    android:layout_weight="0.4">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="New Text"
        android:id="@+id/textView_description"
        android:layout_centerVertical="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:background="#ff00ebff"/>
</RelativeLayout>
</LinearLayout>

片段:

    public class meets extends Fragment {

    public meets() {
    }

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

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

        View root = inflater.inflate(R.layout.fragment_meets, container, false);

        CaldroidFragment mCaldroidFragment = new CaldroidFragment();
        Bundle args = new Bundle();
        args.putInt( CaldroidFragment.START_DAY_OF_WEEK, CaldroidFragment.MONDAY );
        mCaldroidFragment.setArguments( args );
        getActivity().getSupportFragmentManager().beginTransaction().replace( R.id.cal_container , mCaldroidFragment ).commit();

        return root;
    }
}

enter image description here