我在 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) 我目前在 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) 在我的应用程序中,我想在背景图像上绘制.我有以下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顺序.
有任何想法吗?谢谢你的帮助!:)
我正在尝试在布局的中心和底部的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上使用拖动视图的解决方案.
然而,它们要么太慢,要么是马车.
一个已知的解决方案是使用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我有一个相对布局,我正在实现导航抽屉,所以如何放置它我不知道.滑入和滑出不起作用...当我使用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
我已将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
我正在尝试构建一个具有多个时钟(不同区域)的简单主屏幕小部件.设计方面,我想使用CardView(例如谷歌搜索栏)作为根布局元素,但由于小部件不支持,我该如何复制它?我可以以某种方式使用其父类,即框架布局吗?
android android-view android-cardview android-framelayout home-screen-widget
我的主要活动中有此功能,但不显示徽章:
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
我有一个扩展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)
我怎样才能做到这一点?