Tag: android layout

设置操作栏标题和副标题

我想在编译时间之前设置我的操作栏的标题和小标题。 我有办法做到这一点: ActionBar ab = getActionBar(); ab.setTitle("My Title"); ab.setSubtitle("sub-title"); 但是我不想在运行时做这件事。 有没有任何XML文件或任何我可以指定这些标题的位置? 我正在努力实现这一点: 编辑: 我希望在xml中使用它的原因是我希望在API级别8支持我的应用程序。至少在级别11上支持getActionBar()方法。

从BottomSheetDialog获取BottomSheetBehaviour

这是我的BottomSheetDialog的布局。 我也有一个网格布局。 网格布局的滚动是不正确的。 我的意思是它只能在BottomSheetDialog的扩展状态下滚动。 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" app:layout_behavior="@string/bottom_sheet_behavior" > <LinearLayout android:id="@+id/ll" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="@dimen/view_padding_medium" android:gravity="center_vertical"> <ImageView android:layout_width="@dimen/profile_image" android:layout_height="@dimen/profile_image" android:src="@drawable/icon" /> <TextView android:id="@+id/title1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/view_padding_medium" android:text="@string/smart_action_share" android:textColor="@color/white" /> </LinearLayout> <GridView android:id="@+id/gridView11" android:layout_width="match_parent" android:layout_height="wrap_content" android:numColumns="3" > </GridView> </LinearLayout> 这是我创建底部表单对话框的方式: BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(context); LayoutInflater inflater = ((Activity) Constants.getContext()).getLayoutInflater(); View view = inflater.inflate(R.layout.dialog_share1, […]

findViewById()的更好的代码结构

我很好奇在android中使用代码 findViewById(R.id.view_id).setVisibility(View.GONE); 要么 findViewById(R.id.view_id).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { } }); 这是一个很好的结构,使用“findViewById”或添加任何视图上的任何监听器或应使用它 Button buttonA=(Button)findViewById(R.id.view_id); buttonA.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { } }); 提前致谢。

如何解释这个怪异的行为,当以编程方式将边距设置为RelativeLayout中的视图?

我有一个在TabView中的三个选项卡之一的片段内的RelativeLayout。 看到这个截图 – 大粉红色方块是我的RelativeLayout: 截图 里面的视图是右下角的小蓝色方块。 由于RelativeLayout是300x300dp,小方块是8x8dp,所以如果我将它的顶部和左边距设置为292dp,它就会在那个角落结束。 现在我想通过编程来改变自己的位置,但是当我这样做的时候,我的价值观却不断地被两分为二。 所以,如果我将边距从292改为292,它将会在RelativeLayout的中间位置结束,但是如果我将它们设置为292 * 2,则会回到角落。 也许有人知道这里发生了什么? 这是我的布局文件: <?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <android.support.constraint.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:width="40dp" android:height="40dp" android:background="@color/colorAccent" android:text="Test!" /> <RelativeLayout android:layout_width="300dp" android:layout_height="300dp" android:background="@color/colorAccent" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent"> <View android:id="@+id/position_dot" android:layout_width="8dp" android:layout_height="8dp" android:layout_alignParentStart="true" android:layout_alignParentTop="true" android:background="@color/colorPrimary" android:layout_marginLeft="292dp" android:layout_marginTop="292dp"/> </RelativeLayout> </android.support.constraint.ConstraintLayout> </layout> 这是我用来更新边距的方法: fun moveDotToCurrentPosition() { var […]

扩展EditText的视图会丢失样式,并且不可聚焦

我尝试使用kotlin为方便的原因(NumberEdit)继承EditText,但渲染后的View失去了大部分的EditText属性。 外观是一个TextView的,它不是用鼠标(在模拟器中)可以聚焦的。 当我点击活动时,我可以编辑第一个NumberEdit小部件,并可以使用Tab键循环到下一个小部件。 我添加了两个模拟器截图来说明不同之处。 一个EditText看起来像这样 新的NumberEdit看起来像这样 扩展类看起来像这样: import android.content.Context import android.text.InputType import android.util.AttributeSet import android.widget.EditText class EditNumber(context: Context, attributeSet: AttributeSet?, defStyleAttr: Int, defStyleRes: Int) : EditText(context, attributeSet, defStyleAttr, defStyleRes) { constructor(context: Context) : this(context, null, 0, 0) constructor(context: Context, attributeSet: AttributeSet?) : this(context, attributeSet, 0, 0) constructor(context: Context, attributeSet: AttributeSet?, defStyleAttr: Int) : this(context, attributeSet, […]

现有的方法来设置Android库模块的组件的UI风格?

PS:只是要清楚,我想使用Style文件中定义的样式来实现建议的场景 我目前正在开发一个库 ,为Android用户提供一个简单的搜索界面。 我想要尽可能灵活地构建它,以允许这些类型的配置: data class SearchPallet( val searchBar: SearchBar, val resultRow: ResultRow, val resultDisclaimer: ResultDisclaimer, val background: Background ) : Serializable { data class SearchBar( val inputStyle: Int, val color: Int, val iconBack: Int, val iconClear: Int ) : Serializable data class ResultRow( val thumbnailStyle: ThumbnailStyle, val headerStyle: Int, val subHeader1Style: Int, val subHeader2Style: […]

在TextView的文本和边界之间获取空间

我正在尝试获取文本和TextView左侧之间的距离。 它使用属性android:gravity="center" 。 我想要得到红色条的距离(这个红色的条不是布局的一部分),以中心的蓝色按钮。 我该怎么办? 黑暗区域代表了TextView的界限。 我不想使用CompoundDrawable,因为这个视图会随机更改按钮的颜色。 视图代码(用Kotlin编写): class BallTextView: TextView { private lateinit var ballPaint : Paint private var ballRadius : Float = 10f private var ballColor : Int = Color.BLACK constructor(ctx: Context, attrs: AttributeSet) : super(ctx, attrs) { initializeAttributes(attrs) configBall() } override fun onDraw(canvas: Canvas) { canvas.drawCircle(ballRadius, height.toFloat()/2, ballRadius, ballPaint) super.onDraw(canvas) } fun […]

XML布局中的性能与代码中的布局?

在android中的代码与XML布局完成的布局之间有任何性能差异?

在Windows上膨胀异常二进制xml文件

我正在开发一个Android应用程序使用Android工作室。 编程语言是Kotlin,我的操作系统是Ubuntu。 当我在我的电脑上建立项目时,一切正常。 但是,当我的同事试图做同样的事情时,他的布局通货膨胀的例外情况在我们测试过的每个设备上都出现了。 除了OS以外,一切都是一样的。 在他的情况下,它是Windows 7.有没有人遇到过类似的问题,我要挖掘哪个方向来解决这个问题? 06-23 21:18:09.366 5457-5457/com.rbot.mdd.research E/UncaughtException: android.view.InflateException: Binary XML file line #41: Error inflating class com.arnis.hint_keyboard.HintKeyboard at android.view.LayoutInflater.createView(LayoutInflater.java:620) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696) at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) at android.view.LayoutInflater.rInflate(LayoutInflater.java:758) at android.view.LayoutInflater.inflate(LayoutInflater.java:492) at android.view.LayoutInflater.inflate(LayoutInflater.java:397) at com.rbot.common.KotlinUtilsKt.inflateLayout(SourceFile:65) at com.rbot.mdd.tester.view.BotFragment.onCreateView(SourceFile:24) at android.support.v4.app.Fragment.performCreateView(SourceFile:2192) at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:1299) at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(SourceFile:1528) at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:1595) at android.support.v4.app.BackStackRecord.executeOps(SourceFile:758) at android.support.v4.app.FragmentManagerImpl.executeOps(SourceFile:2363) at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(SourceFile:2149) at android.support.v4.app.FragmentManagerImpl.optimizeAndExecuteOps(SourceFile:2103) at android.support.v4.app.FragmentManagerImpl.execSingleAction(SourceFile:1984) […]

以编程方式在标签栏中创建视图寻呼机,但查看寻呼机内容则滚动浏览标签

正如标题所说,我已经创建了一个带有tabbar的查看传呼机。 我正在使用一个NestedScrollView作为父布局,与CoordinatorLayout作为孩子。 问题是,当我上下滚动页面的内容滚动选项卡标题。 我曾尝试使用AppBarLayout,但它不允许滚动,所以我不得不删除它。 我想知道是否有什么明显的我失踪? 任何帮助将不胜感激。 以下是代码片段(在Kotlin中): val scrollView = NestedScrollView(activity) scrollView.layoutParams = ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT) scrollView.isFillViewport = true val rootLayout = CoordinatorLayout(activity) rootLayout.layoutParams = rootLayout.setDimensions(CoordinatorLayout.LayoutParams.MATCH_PARENT, CoordinatorLayout.LayoutParams.MATCH_PARENT) val tabLayout = TabLayout(activity) tabLayout.tabMode = TabLayout.MODE_FIXED tabLayout.tabGravity = TabLayout.GRAVITY_FILL rootLayout.addView(tabLayout) tabLayout.layoutParams = CoordinatorLayout.LayoutParams(CoordinatorLayout.LayoutParams.MATCH_PARENT, CoordinatorLayout.LayoutParams.WRAP_CONTENT) tabLayout.setBackgroundColor(ContextCompat.getColor(activity, R.color.account_background)) val viewPager = ViewPager(activity) viewPager.id = 11122 viewPager.layoutParams = CoordinatorLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT).apply { […]