标签: android-framelayout

Android布局加载子布局

我想让我的xml布局更加模块化,因为这将是非常错综复杂的!

我想要一些片段在他们自己的xml文件中.我将如何在主XML文件中正确引用它们.

例如

可以说我有一个

<relative layout>
     <linear layout>
<relative layout>
     <frame layout>
<relative layout>
     <linear layout>
Run Code Online (Sandbox Code Playgroud)

但是它<frame layout>有一个非常复杂的子节点,其中包含按钮和包含列表视图的滚动视图.

我想用自己的XML开发框架布局,然后仅在我的主文档中引用该xml文档

那种语法会是什么样的?它是否仅与<frame layout>我的主XML 中分配的ID相关?

xml layout android listview android-framelayout

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

DecorView子framelayout在设备上有所不同

我使用类似的库 github.com/bk138/LibSlideMenu

并且它的工作非常出色HTC device(ICS),并Nexus 7(ICS)和其他Gingerbread设备.

但有些设备Motorola atrix和其他HTC设备一样.

所以我检查了代码.

View view  = act.findViewById(android.R.id.content);
Utils.Log("<SlideMenu> : VIEW : "+view);        
ViewParent viewParent = view.getParent();
Utils.Log("<SlideMenu> : VIEW : "+viewParent);  
LinearLayout linearLayout = (LinearLayout) viewParent;
Utils.Log("<SlideMenu> : VIEW : "+linearLayout);
content = linearLayout;
Run Code Online (Sandbox Code Playgroud)

在这里,首先FrameLayout在所有设备上返回.

但第二件事LinearLayoutICS设备和其他HTC 2.3设备上返回,有些设备返回DecorView.

我引用这篇文章:DecorView Child FrameLayout

他们说这是我使用的问题NoTitleBar,所以我显示标题栏但它不起作用.

此外,即使我添加了NoTitleBar属性,一些设备也能很好地工作.

由于设备有不同的结果,这真的令人沮丧.有谁知道吗?

请帮助:D提前致谢.

android android-framelayout

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

使用FrameLayout在文本视图上放置文本视图

下面是我设计我的xml的方法.现在,我正在尝试在下面显示的白框内插入textview.但是受到FrameLayout的限制(至少我认为是这样)我需要硬编码值以使文本视图适合中间或白盒内的某些位置.我不能为此目的使用相对或其他布局,因为我已经通过我的试验理解,因为整体是单个图像.

这是我的布局,

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content" android:layout_height="wrap_content"
    android:visibility="visible" android:layout_marginTop="60dip"
    android:layout_gravity="center" android:id="@+id/xxx">

    <ImageView android:id="@+id/calloutquizImage" 
        android:background="@drawable/callout" android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:scaleType="fitCenter" />

    <ImageView android:id="@+id/triviaImage"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:layout_alignTop="@+id/calloutquizImage" android:layout_gravity="left"
        android:src="@drawable/trivia" android:background="@drawable/trivia"
        android:layout_marginTop="50dip" android:layout_marginLeft="85dip"></ImageView>

    <TextView android:text="TextView" android:id="@+id/triviAnswerText"
        android:layout_marginTop="125dip" android:layout_marginLeft="85dip"
        android:layout_gravity="left" android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:textColor="#000000"
        android:typeface="sans"></TextView>

    <ImageButton android:id="@+id/triviaanswercloseButton"
        android:src="@drawable/closebtn" android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:background="@drawable/closebtn"
        android:layout_marginRight="8dip" android:layout_marginTop="43dip"
        android:layout_gravity="right" android:onClick="triviaanswerClose"></ImageButton>
    <ImageView android:id="@+id/buttontoclose"
        android:layout_gravity="left"
        android:visibility="visible" android:onClick="triviaanswerClose" 
        android:layout_marginTop="50dip" android:layout_marginLeft="75dip"
        android:layout_width="230dip" android:layout_height="170dip"></ImageView>
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

因此,文本视图在各种手机中看起来处于不同的位置.

任何猜测可以为此做些什么呢?

以下是我的形象:

在此输入图像描述

android relativelayout android-layout android-framelayout

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

得到警告:此linearlayout布局或其framelayout父级可能无用

<TabHost
    android:id="@+id/tabHost"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

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

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1" >

 // ---------------------------  Here I got warning  -------------------------
            <LinearLayout
                android:id="@+id/chat_list"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:orientation="vertical"
                android:visibility="visible" >
 // --------------------------------------------------------------------------
                <ListView
                    android:id="@+id/listView"
                    android:layout_width="fill_parent"
                    android:layout_height="0dp"
                    android:layout_weight="1"
                    android:background="@color/white" >
                </ListView>

                <LinearLayout
                    android:id="@+id/text_entry"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:gravity="bottom"
                    android:orientation="horizontal" >

                    <EditText
                        android:id="@+id/txt_inputText"
                        android:layout_width="125dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="0.8"
                        android:hint="@string/enter_text"
                        android:inputType="text" />

                    <Button
                        android:id="@+id/btn_Send"
                        android:layout_width="100dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="0.2"
                        android:text="@string/send" />
                </LinearLayout>
            </LinearLayout>
        </FrameLayout>

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0" >
        </TabWidget>
    </LinearLayout>
</TabHost>
Run Code Online (Sandbox Code Playgroud)

如何解决此警告?我找不到任何解决方案。任何帮助将不胜感激。

android warnings android-linearlayout android-framelayout

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

在Android中,如何在添加FrameLayout时设置子项的顺序?

我有一个FrameLayout,它将包含一组ImageViews.我正在使用FrameLayout,因为我实际上希望它们重叠.但是,当我向Layout添加项目时,我不希望它们只是堆叠.我实际上需要订购它们.

图像从存储中提取,我将其正确的顺序存储在我的数据库中,因此:

Image1 - layerNumber: 3
Image2 - layerNumber: 12
Image3 - layerNumber: 1
Image4 - layerNumber: 34
Image5 - layerNumber: 6
Image6 - layerNumber: 30
Run Code Online (Sandbox Code Playgroud)

当我将它们放在FrameLayout中时,我需要将它们放在layerNumber顺序的Layout中.此外,我将在使用该应用时一次添加一个或多个.我可以选择添加"Image50 - layerNumber:10"的内容.

我希望做的是使用像ImageView.setChildOrder(x)之类的东西.有没有办法做到这一点?

-----编辑-----每@fifarunnerr我做了这样的事情:

productLayers.addView(productIV, Integer.parseInt(productItem.get(1)));
Run Code Online (Sandbox Code Playgroud)

productItem.get(1)只是layerNumber.对于这个例子,它位于第23层.

我收到错误: java.lang.IndexOutOfBoundsException: index=23 count=3

我理解错误:我正在尝试将视图放置在第23个点有3个"点"的布局中.正如您在前面的数字中所看到的,layerNumber并不总是处于1..2..3..4 ...模式中.

android android-framelayout

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

ScrollView中的Android GLSurfaceView生成黑色边框

我有一个我想放在ScrollView中的GLSurfaceView.我通过在添加到ScrollView的LinearLayout中添加FrameLayout来实现这一点.

除了我在滚动时在GLSurfaceView上方获得黑色边框时,Everyhing效果很好.当屏幕静止时,每次都很好看.任何人都有任何想法.

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

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="900dp"
            android:orientation="horizontal"
            android:layout_weight="1"
            android:layout_marginStart="10dp"
            android:layout_marginEnd="10dp"
            android:layout_marginTop="35dp"
            android:visibility="visible"
            android:weightSum="1"
            android:overScrollMode="never">

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

在此输入图像描述

android opengl-es scrollview glsurfaceview android-framelayout

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

在滚动视图中嵌套框架布局?

我遇到了一个问题,我不确定解决它的最佳方法。我需要在滚动视图中包含所有小部件。

下面是布局,我使用了框架布局,因为我需要重叠一堆图像。然而,整个框架布局不能在滚动视图内。但我需要滚动整个面板。用黄色箭头标记的部分显示了框架布局。

在此处输入图片说明

我看了这个帖子,但这不是我想要的。

ScrollView 内部 ScrollView

这是xml,如果有人可以提供线索,我将不胜感激。谢谢!

<!-- unfortunately I cannot put this inside the scrollview :( -->
<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <ImageView
        android:id="@+id/image_background"
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:background="@drawable/follow_add" />
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="100dp"
        android:gravity="center|bottom"
        android:orientation="horizontal">
        <ImageView
            android:id="@+id/image_icon"
            android:layout_width="120dp"
            android:layout_height="120dp"
            android:background="@drawable/feed_active" />
    </LinearLayout>

    <ImageView
        android:id="@+id/dismiss"
        android:layout_gravity="left"
        android:layout_margin="5dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/close_messages_modal" />
    <ImageView
        android:id="@+id/follow"
        android:layout_gravity="right"
        android:layout_margin="5dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/follow_add" />
</FrameLayout>


<ScrollView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
        <TextView
            android:id="@+id/textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="10dp"
            android:text="Layout above needs to scroll"
            android:textColor="@color/half_dark_text_color"
            android:textSize="28sp"
            android:textStyle="bold" /> …
Run Code Online (Sandbox Code Playgroud)

android scrollview android-framelayout

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

FrameLayout中的FAB位于片段之上

在我的布局中,我有一个FrameLayout我打算根据用户输入显示不同的布局.我想FloatingActionButton在所有这些布局中显示一个.

为了不重复FloatingActionButton所有这些,我想把它附加到FrameLayout.问题是按钮未在fragment布局顶部正确显示.例如,fragment显示的初始GridView值为a ,按钮位于其后面.

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<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"
    tools:context="xeniasis.mymarket.MainActivity">

    <include
        android:id="@+id/toolbar"
        layout="@layout/toolbar" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:baselineAligned="false"
        android:orientation="horizontal"
        android:weightSum="4">

        <LinearLayout
            android:id="@+id/categories_layout"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:paddingRight="20dp">

            <ExpandableListView
                android:id="@+id/categories_listView"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
        </LinearLayout>

        <FrameLayout
            android:id="@+id/mainPane"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="3">

            <android.support.design.widget.FloatingActionButton
                android:id="@+id/settings"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="bottom|start"
                android:layout_margin="8dp"
                android:clickable="true"
                android:elevation="5dp"
                android:src="@android:drawable/ic_menu_search" />
        </FrameLayout>
    </LinearLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

并以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"
    android:orientation="vertical"
    tools:context="xeniasis.mymarket.MainActivity">

        <android.support.v4.widget.SwipeRefreshLayout …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-fragments floating-action-button android-framelayout

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

android:为什么文本视图不会叠加在 FrameLayout 中的按钮上

几乎每篇关于分层小部件主题的文章都指向 FrameLayouts,它应该根据 XML 中的出现顺序进行堆叠。为了测试,我在xml中放了一个按钮和一个TextView,希望能看到TextView与按钮重叠。按钮是放在 textview 之前还是之后都没有关系,按钮总是在顶部。谁能看到我做错了什么?

<?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:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.jdot.testloadingfragments.MainActivity">

    <Button
        android:id="@+id/btn_test"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="10dp"
        android:text="        "
        />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:text="----------------------------------------------------------"/>


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

android android-framelayout

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

android.widget.FrameLayout $ LayoutParams无法强制转换为android.widget.AbsListView $ LayoutParams

还有其他相关问题,但它们没有解决我的情况(它们的错误代码与某种回收和/或客户端代码的错误转换调用有关).

我的情况更复杂.

我有一些代码,用户可以在其中提取照片库.

问题是,它在我拥有的7部手机上工作得很好,所有手机都运行API 19+.

但是我有运行API 17的Google Nexus 4.3.我得到的崩溃日志中没有我的代码,只有库代码.如果你可以建议我如何能够编写一个解决方案,我会全力以赴:

FATAL EXCEPTION: main
    java.lang.ClassCastException: android.widget.FrameLayout$LayoutParams cannot be cast to android.widget.AbsListView$LayoutParams
            at android.widget.GridView.onMeasure(GridView.java:1042)
            at android.view.View.measure(View.java:15848)
            at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:728)
            at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:477)
            at android.view.View.measure(View.java:15848)
            at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:728)
            at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:477)
            at android.view.View.measure(View.java:15848)
            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5008)
            at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
            at android.view.View.measure(View.java:15848)
            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5008)
            at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
            at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
            at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
            at android.view.View.measure(View.java:15848)
            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5008)
            at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
            at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2189)
            at android.view.View.measure(View.java:15848)
            at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1905)
            at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1104)
            at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1284)
            at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1004)
            at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5481)
            at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749)
            at android.view.Choreographer.doCallbacks(Choreographer.java:562)
            at android.view.Choreographer.doFrame(Choreographer.java:532)
            at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735)
            at android.os.Handler.handleCallback(Handler.java:730)
            at …
Run Code Online (Sandbox Code Playgroud)

java android classcastexception android-runtime android-framelayout

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