标签: android-framelayout

FrameLayout 高度与父级不匹配

我在 AlertDialog 中有以下布局作为自定义视图。

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 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:layout_gravity="center"
    android:gravity="center"
    android:padding="16dp">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:orientation="vertical">

        <GridLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:columnCount="3">

            <TextView
                android:id="@+id/code1"
                android:layout_width="@dimen/match_code_button_size"
                android:layout_height="@dimen/match_code_button_size"
                android:gravity="center"
                android:text="\u2022"
                android:textSize="@dimen/match_code_digit_size"
                tools:ignore="HardcodedText" />

            <TextView
                android:id="@+id/code2"
                android:layout_width="@dimen/match_code_button_size"
                android:layout_height="@dimen/match_code_button_size"
                android:layout_marginBottom="20dp"
                android:gravity="center"
                android:text="\u2022"
                android:textSize="@dimen/match_code_digit_size"
                tools:ignore="HardcodedText" />

            <TextView
                android:id="@+id/code3"
                android:layout_width="@dimen/match_code_button_size"
                android:layout_height="@dimen/match_code_button_size"
                android:gravity="center"
                android:text="\u2022"
                android:textSize="@dimen/match_code_digit_size"
                tools:ignore="HardcodedText" />

            <Button
                android:id="@+id/k1"
                android:layout_width="@dimen/match_code_button_size"
                android:layout_height="@dimen/match_code_button_size"
                android:text="1"
                android:textSize="@dimen/match_code_button_text"
                tools:ignore="HardcodedText" />

            <Button
                android:id="@+id/k2"
                android:layout_width="@dimen/match_code_button_size"
                android:layout_height="@dimen/match_code_button_size"
                android:text="2"
                android:textSize="@dimen/match_code_button_text"
                tools:ignore="HardcodedText" />

            <Button
                android:id="@+id/k3"
                android:layout_width="@dimen/match_code_button_size"
                android:layout_height="@dimen/match_code_button_size"
                android:text="3"
                android:textSize="@dimen/match_code_button_text"
                tools:ignore="HardcodedText" />

            <Button
                android:id="@+id/k4"
                android:layout_width="@dimen/match_code_button_size"
                android:layout_height="@dimen/match_code_button_size" …
Run Code Online (Sandbox Code Playgroud)

android android-framelayout

5
推荐指数
1
解决办法
6009
查看次数

android.widget.FrameLayout.layoutChildren

我目前在 Fabric 中遇到了大量关于同一崩溃的许多不同实例的崩溃。IE FrameLayout.java 第 275 行FrameLayout.java 第 405 行FrameLayout.java 第 531 行。没有明确的迹象表明这次崩溃发生时发生了什么。特别是没有对我的任何代码的行引用。有没有人经历过这样的事情,有没有人知道是什么导致了这种情况,有没有人知道问题的解决方案?谢谢!

    **FrameLayout.java line 531
    android.widget.FrameLayout.layoutChildren**

    Fatal Exception: java.lang.NullPointerException: Attempt to invoke 
    virtual method 'int android.view.View.getVisibility()' on a null object 
    reference
           at android.widget.FrameLayout.layoutChildren(FrameLayout.java:275)
           at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
           at android.view.View.layout(View.java:19039)
           at android.view.ViewGroup.layout(ViewGroup.java:5935)
           at 
   android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)
           at 
    android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)
           at android.widget.LinearLayout.onLayout(LinearLayout.java:1494)
           at android.view.View.layout(View.java:19039)
           at android.view.ViewGroup.layout(ViewGroup.java:5935)
           at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
           at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
          at 
com.android.internal.policy.DecorView.onLayout(DecorView.java:954)
       at android.view.View.layout(View.java:19039)
       at android.view.ViewGroup.layout(ViewGroup.java:5935)
       at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2711)
       at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2426)
       at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1569)
       at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7296)
       at android.view.Choreographer$CallbackRecord.run(Choreographer.java:930)
       at android.view.Choreographer.doCallbacks(Choreographer.java:705)
       at android.view.Choreographer.doFrame(Choreographer.java:640)
       at …
Run Code Online (Sandbox Code Playgroud)

java crash android android-framelayout

5
推荐指数
1
解决办法
553
查看次数

如何安装Android Z命令?

在我的应用程序中,我想在背景图像上绘制.我有以下xml:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/bg2"
>
    <com.myapp.drawings.DrawingSurface
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:id="@+id/drawingSurface"
    />
    <LinearLayout
            android:orientation="horizontal"
            android:background="@drawable/bg2" 
            android:layout_width="match_parent" 
            android:layout_height="match_parent">
        <Button
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                android:text="OK"
                android:onClick="onClick"
                android:id="@+id/colorBlueBtn"
        />
        <Button
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                android:text="Save"
                android:onClick="onClick"
                android:id="@+id/saveBtn"
        />
    </LinearLayout>
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

不,问题是,当我尝试在绘图表面上绘图时,我的绘图没有显示.显示了背景图像和按钮.一旦我保存它,我的应用程序生成的图像文件就会显示出来.我认为问题是我的布局的Z顺序.

有任何想法吗?谢谢你的帮助!:)

android android-layout android-framelayout

4
推荐指数
2
解决办法
1万
查看次数

以编程方式在framelayout中覆盖imageview上的文本 - Android

我正在尝试在布局的中心和底部的framelayout中的图像上实现textview,如下所示:

http://developer.android.com/resources/articles/layout-tricks-merge.html

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

<ImageView  
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 

    android:scaleType="center"
    android:src="@drawable/golden_gate" />

<TextView
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginBottom="20dip"
    android:layout_gravity="center_horizontal|bottom"

    android:padding="12dip"

    android:background="#AA000000"
    android:textColor="#ffffffff"

    android:text="Golden Gate" />

</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

我试图以编程方式实现这一点,但没有运气..我总是在左上角看到textview ..谁能帮忙?这是我的代码:

FrameLayout frameLay = new FrameLayout(MainScreen.this);                            
LayoutParams layoutParamsFrame = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);

frameLay.setLayoutParams(layoutParamsFrame);

LinearLayout.LayoutParams layoutParamsImage= new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);

ImageView imageView= new ImageView(MainScreen.this);
imageView.setImageResource(R.drawable.movie);   
imageView.setLayoutParams(layoutParamsImage);

TextView theText=new TextView(MainScreen.this);
theText.setText("GOLDEN Gate");
theText.setTextColor(Color.WHITE);                           
theText.setTypeface(Typeface.DEFAULT_BOLD); 

LayoutParams layoutParamsText= new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

theText.setLayoutParams(layoutParamsText);

theText.setGravity(Gravity.CENTER_HORIZONTAL|Gravity.BOTTOM);

frameLay.addView(theText);
frameLay.addView(imageView);
Run Code Online (Sandbox Code Playgroud)

android textview imageview android-framelayout

4
推荐指数
1
解决办法
2万
查看次数

如何在android上正确拖动视图

似乎有很多关于如何在android上使用拖动视图的解决方案.

然而,它们要么太慢,要么是马车.

一个已知的解决方案是使用framelayout,视图只需在使用OnTouchListener移动时更改其layoutParams,如下所述:http://www.anddev.org/novice-tutorials-f8/android-drag-and-drop -of-normal-views-not-bitmaps-t13404.html 但是,如果视图是imageView,当到达framelayout的最右侧(或最底部)时,图像会缩小.

另一种可能的解决方案是使用画布来显示拖动的内容,如下所述:http: //www.anddev.org/basic_drag_and_drop-t3095.html 但是,我不确定如何将它用于复杂视图.

没有人知道一个很好的解决方案,一个让拖累视图的大小保持不变,不管它是在它的容器?

请帮我 .

android drag imageview layoutparams android-framelayout

4
推荐指数
1
解决办法
1万
查看次数

相对布局和导航抽屉?

我是新来的android我有一个相对布局,我正在实现导航抽屉,所以如何放置它我不知道.滑入和滑出不起作用...当我使用DrawerLayout和FrameLayout创建一个新项目时,它正在工作但是当我在我的项目上实现时它出现故障

activity_main.xml
 <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >


<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:background="@drawable/calc" >




    <ListView
        android:id="@+id/drawerlist"
        android:background="#00a77f"

        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="left" />





    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical" >

            <LinearLayout
                android:id="@+id/linearll1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="20dp"
                android:layout_marginRight="20dp"
                android:layout_marginTop="30dp"
                android:orientation="horizontal" >

                <Button
                    android:id="@+id/cs"
                    android:layout_width="100dp"
                    android:layout_height="140dp"
                    android:layout_weight="1"
                    android:alpha="0.5"
                    android:background="@drawable/roundbutton"
                    android:text="@string/cs"
                    android:textColor="@drawable/recbutcolor"
                    android:textSize="22sp"
                    android:textStyle="bold" />

                <Button
                    android:id="@+id/cal"
                    android:layout_width="100dp"
                    android:layout_height="140dp"
                    android:layout_marginLeft="20dp"
                    android:layout_weight="1"
                    android:alpha="0.5"
                    android:background="@drawable/roundbutton"
                    android:text="@string/maincalc"
                    android:textColor="@drawable/recbutcolor"
                    android:textSize="22sp"
                    android:textStyle="bold" />
            </LinearLayout>

            <LinearLayout
                android:id="@+id/linearll2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/linearll1"
                android:layout_marginLeft="20dp"
                android:layout_marginRight="20dp"
                android:layout_marginTop="30dp"
                android:orientation="horizontal" >

                <Button
                    android:id="@+id/interviewquestion"
                    android:layout_width="100dp"
                    android:layout_height="140dp" …
Run Code Online (Sandbox Code Playgroud)

android relativelayout navigation-drawer android-framelayout

4
推荐指数
1
解决办法
6677
查看次数

在Activity中获取Fragment实例

我已将Fragment添加到Activity中

getSupportFragmentManager().beginTransaction()
                    .add(R.id.container,new MyFragment).commit();
Run Code Online (Sandbox Code Playgroud)

在哪里container是的FrameLayout

 <FrameLayout
            android:id="@+id/container"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
Run Code Online (Sandbox Code Playgroud)

现在我怎么能像这样在Activity中 获得Fragment的实例

我必须Fragment A在获得结果后调用一种方法Fragment B.

我在Fragment B中创建了一个接口,并在Activity.Now中实现了它.我必须将结果传递给Fragment A.我无法获得Fragment A的实例.

我不想做的一件事是在Activity中创建片段A的私有实例并调用它的方法.

android interface android-fragments fragmentmanager android-framelayout

4
推荐指数
1
解决办法
1万
查看次数

如何在主屏幕小部件中包含CardView

我正在尝试构建一个具有多个时钟(不同区域)的简单主屏幕小部件.设计方面,我想使用CardView(例如谷歌搜索栏)作为根布局元素,但由于小部件不支持,我该如何复制它?我可以以某种方式使用其父类,即框架布局吗?

android android-view android-cardview android-framelayout home-screen-widget

4
推荐指数
1
解决办法
1210
查看次数

BadgeDrawable 是否不适用于 FrameLayout 中的视图,例如按钮、图像、文本视图等?

我的主要活动中有此功能,但不显示徽章:

private fun setFindShiftBadge(state: HomeState) {
        val findShiftsBadge = BadgeDrawable.create(this)
        home_framelayout.foreground = findShiftsBadge
        findShiftsBadge.badgeGravity = BadgeDrawable.TOP_END
        findShiftsBadge.backgroundColor = resources.getColor(R.color.colorWhite)
        findShiftsBadge.badgeTextColor = resources.getColor(R.color.colorPrimary)
        findShiftsBadge.number = state.availableShifts.size
 }
Run Code Online (Sandbox Code Playgroud)

在同一个活动中,我有这个显示徽章的功能:

private fun setMyPostedShiftBadge(state: HomeState) {
    val userShiftsBadge: BadgeDrawable =
        bottom_navigation_view.getOrCreateBadge(R.id.bottom_navigation_my_posted_shifts_text)
    userShiftsBadge.number = state.userShifts.size
    userShiftsBadge.backgroundColor = resources.getColor(R.color.colorPrimary)
} 
Run Code Online (Sandbox Code Playgroud)

现在我明白第二个函数可以工作,因为徽章设置在BottomNavigationView. 具有讽刺意味的是,BottomNavigationView扩展FrameLayout。在 Android 文档中: 使用 attachBadgeDrawable(BadgeDrawable, View, FrameLayout) 将 BadgeDrawable 作为 ViewOverlay 添加到所需的锚视图。使用 updateBadgeCoordinates(View, ViewGroup) 根据锚视图更新 BadgeDrawable BadgeDrawable 的坐标(中心和边界)。

他们说要使用这段代码,For API 18+ (APIs supported by ViewOverlay)我在第一个不起作用的函数中使用了它:

 BadgeDrawable badgeDrawable …
Run Code Online (Sandbox Code Playgroud)

android badge android-view android-drawable android-framelayout

4
推荐指数
2
解决办法
2297
查看次数

如何在活动视图中重绘画布

我有一个扩展View的类,并在我的xml文件中实现了onDraw方法我有一个带有我视图的FrameLayout和一个带按钮的RelativeLayout

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent">
<canvas.pruebas.MyView
android:layout_width="fill_parent"
  android:layout_height="fill_parent"
/>
<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"
     >
    <Button          
            android:id="@+id/btn"
            android:layout_width="100dp"           
            android:layout_height="wrap_content"
            android:text="hello"
            android:textSize="15sp"

            />
    </RelativeLayout>
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

在我的Activity类中,我想在我单击按钮重绘MyView类中的画布时实现

public class CanvasActivity extends Activity {
    Button btn;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        btn=(Button)findViewById(R.id.btn);
        btn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                //redraw canvas
            }
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

android canvas view android-framelayout

3
推荐指数
1
解决办法
1万
查看次数