在约束布局cardview内移动项目

时间:2018-02-23 11:40:37

标签: android android-layout android-cardview android-constraintlayout

这是我用于活动的布局。

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.phocast.AboutMeActivity">

    <android.support.v7.widget.CardView
        android:id="@+id/cv_abtme"
        android:layout_width="369dp"
        android:layout_height="260dp"
        android:layout_marginBottom="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="101dp"
        android:background="@color/colorPrimaryLight"
        app:cardBackgroundColor="@color/bgcol_abtme"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.883">


        <ImageView
            android:id="@+id/imageView2"
            android:layout_width="120sp"
            android:layout_height="120sp"
            app:srcCompat="@drawable/ic_face_black_24dp" />

        <ImageView
            android:id="@+id/iv1_abtme"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/tv_abtme"
            app:srcCompat="@drawable/about_icon_facebook" />

        <TextView
            android:id="@+id/textView4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:fontFamily="serif-monospace"
            android:lineSpacingExtra="12sp"
            android:text="@string/facebook_id"
            android:textSize="18sp" />

        <TextView
            android:id="@+id/tv_abtme"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:fontFamily="cursive"
            android:text="@string/user_name"
         android:textAppearance="@style/TextAppearance.AppCompat.Large"
            android:textSize="36sp" />

    </android.support.v7.widget.CardView>

   ....   
</android.support.constraint.ConstraintLayout>

输出如下: enter image description here

问题是我无法以编程方式移动cardview中的项目或在android studio的设计视图中使用拖动。

就像说,我想拥有

  1. iv1_abtme
  2. 下方的Im​​ageview tv_abtme(脸谱图标)
  3. textview4iv1_abtme完全一致 等
  4. 任何人都可以帮助我解决这里出了什么问题(为什么我不能简单地拖动物品)

2 个答案:

答案 0 :(得分:0)

CardView基于FrameLayout,其中的文档清楚地说明了:

  

通常,FrameLayout应该用于保存单个子视图,因为很难以可扩展到不同屏幕大小而儿童不会相互重叠的方式组织子视图。但是,您可以使用android:layout_gravity属性将多个子项添加到FrameLayout并通过为每个子项分配重力来控制它们在FrameLayout中的位置。

因此,要解决您的问题,您的CountVectorizer需要有一个孩子作为您观看的观看组,例如CardViewLinearLayout或{{1} }。

答案 1 :(得分:0)

对不起,简单的解决方法是-

在cardview内创建另一个约束布局! 然后将您想要的任何内容放入此约束布局!

在这里,一切正常!

(不要忘记使用cardview约束组件)