首页 文章

从活动中打开片段并使视图膨胀

提问于
浏览
1

我想打开一个片段,并想要膨胀片段所在的视图 . 这可能吗?我搜索了这些问题:

我找不到答案,或者忽略了它 . 是否有可能当我的片段在onclick之后打开时,我的布局将按钮(beetInfosButton)推到我的片段下面(它被封装在scrollView中),所以我的片段没有重叠?我是否必须使用其他布局而不是RelativeLayout?或者这是不可能的 . 希望有人能理解我想要的东西 . 提前致谢
这是活动代码 .

public class InfoSeite extends AppCompatActivity implements BodenSeite.OnFragmentInteractionListener {

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

public void buttonBodenInfos(View view){
    getFragmentManager().beginTransaction().add(R.id.fragment_container,new BodenSeite()).commit();
    }

和Activity XML-File

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:background="#2fb215"
        android:id="@+id/infoSeite">

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/bodenInfosString"
            android:id="@+id/bodenInfosButton"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="79dp"
            android:onClick="buttonBodenInfos"/>


            <ScrollView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/scrollView2"
                android:layout_toEndOf="@+id/bodenInfosButton"
                android:layout_below="@+id/bodenInfosButton"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true" >

            <FrameLayout
                android:id="@+id/fragment_container"
                android:layout_height="wrap_content"
                android:layout_width="match_parent" />
            </ScrollView>

    <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/beetInfosString"
            android:id="@+id/beetInfosButton"
            android:layout_centerVertical="true"
            android:layout_centerHorizontal="true"
            android:onClick="buttonBeetInfos" />

    </RelativeLayout>

以及Fragment XML的示例 .

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#2fb215"
    android:columnOrderPreserved="true"
    android:tag="BodenFragment"
    android:id="@+id/bodenFragment">


    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/bodenArtenString"
        android:id="@+id/bodenSeiteUeberschrift"
        android:layout_row="0"
        android:layout_column="0"
        android:textSize="40dp"
        android:textAlignment="center" />

2 回答

  • 2

    由于您使用的是 RelativeLayout ,因此您可以相对于彼此选择"stick" Views 或其父级 .

    Pseudo 代码:

    <RelativeLayout>
        <Button />
    
        <ScrollView 
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:visibility="gone"/>
    
        <Button />
    
    <RelativeLayout>
    

    在你 onClick

    scrollView.setVisibility(View.GONE);  //View.VISIBLE, when you close the fragment
    
  • 0

    试试以下代码:

    <?xml version="1.0" encoding="utf-8"?> <RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:background="#2fb215"
        android:id="@+id/infoSeite">
    
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/bodenInfosString"
            android:id="@+id/bodenInfosButton"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="79dp"
            android:onClick="buttonBodenInfos"/>
    
    
            <ScrollView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/scrollView2"
                android:layout_toEndOf="@+id/bodenInfosButton"
                android:layout_below="@+id/bodenInfosButton"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true" >
    
            <FrameLayout
                android:id="@+id/fragment_container"
                android:layout_height="wrap_content"
                android:layout_width="match_parent" />
            </ScrollView>
    
    <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/beetInfosString"
            android:id="@+id/beetInfosButton"
            android:layout_below="@+id/scrollView2"
            android:onClick="buttonBeetInfos" />
    
    </RelativeLayout>
    

相关问题