Tag: 视图

缩小子视图的高度相同

我试图在NestedScrollView中的TextView中显示文本,使得文本比屏幕更大,在缩小TextView后自动显示。 这是我的代码 – val content = findViewById(R.id.content) as TextView content.setText(R.string.large_text) content.viewTreeObserver.addOnGlobalLayoutListener { Log.d("Height", content.height.toString())//1584:6501 val factor = 1584f / 6501; content.scaleX = factor; content.scaleY = factor; } 我的设备屏幕高度是1584px , TextView的内容高度是6501px 问题是NestedScollView sill在缩小TextView的高度到设备屏幕高度后滚动。 我也试着在TextView和它的父类NestedScrollView上调用invalidate()和requestLayout(),但没有运气。 ScrollView保持滚动。 另外我试着扩展TextView并重写onMeasure()方法 override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) { super.onMeasure(widthMeasureSpec, heightMeasureSpec) val parentWidth = MeasureSpec.getSize(widthMeasureSpec) val parentHeight = 1584// MeasureSpec.getSize(heightMeasureSpec) this.setMeasuredDimension(parentWidth, parentHeight) […]

Recyclerview查看共享状态

编辑:问题的原因竟然有一个完全不同的起源。 MediaMetadataCompat搞乱了数据。

软件键盘调整Android上的背景图像

无论何时出现软件键盘,都会调整背景图像的大小。 请参阅下面的截图: 正如你所看到的,背景被挤压了。 任何人都可以了解为什么背景调整? 我的布局如下: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/page_bg" android:isScrollContainer="false" > <LinearLayout android:layout_height="wrap_content" android:orientation="horizontal" android:layout_width="fill_parent" > <EditText android:id="@+id/CatName" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:inputType="textCapSentences" android:lines="1" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/save" android:onClick="saveCat" /> </LinearLayout> <ImageButton android:id="@+id/add_totalk" android:layout_height="wrap_content" android:layout_width="wrap_content" android:background="@null" android:src="@drawable/add_small" android:scaleType="center" android:onClick="createToTalk" android:layout_marginTop="5dp" /> </LinearLayout>

拦截每个视图元素被膨胀?

我试图拦截在我的活动中正在充气的每个视图窗口小部件,并覆盖该视图的setText功能(如果存在)。 所以,如果一个TextView在XML布局中有一个android:text =“bla”,我希望能够截取这个,并且可能会在xml中设置的所有文本的末尾添加一个**。 似乎接近我需要的一种方法是使用自定义布局充气器。 LayoutInflaterCompat.setFactory(layoutInflator, InflatorOnSteriods(this)) 并在我的InflatorOnSteriods重写onCreateView,然后拦截所有视图..这种方法似乎并没有工作。 onCreateView永远不会被调用。 我也试过使用cloneInContext LayoutInflaterCompat.setFactory(layoutInflater.cloneInContext(this), InflatorOnSteriods(this)) 但是也没有运气,也许我的方法是完全错误的,我也打开了一个不同的方式,我可以截取所有呈现的视图,并具体设置一个特定的观点。 确保我将是最后一个改变视图并确保系统尊重我的更改并且不会在以后覆盖它们是非常重要的。 更新: 虽然我不认为它相关; 代码InflatorOnSteroids.kt class InflatorOnSteriods(val appCompatActivity: AppCompatActivity) : LayoutInflaterFactory { override fun onCreateView(parent: View, name: String, context: Context, attrs: AttributeSet): View { var result: View if (TextUtils.equals(name, "DebugDrawerLayout")) { result = ImageView(context, attrs) } result = appCompatActivity.onCreateView(name, context, attrs) if (result == […]

将Firebase中的数据加载到ExpandableList

我试图在我的应用程序中使用可扩展列表。 我遵循这些步骤 ,但我坚持如何从Firebase检索数据,将它们添加为我的代码Dummydata。 这里是主要的活动 public class MainActivity extends AppCompatActivity { ExpandableListAdapter myAdapter; ExpandableListView myList; List<String> listDataHeader; HashMap<String,List<String>> listDataChild; private FirebaseDatabase mFirebaseDatabase; private DatabaseReference mDatabaseReference; private ChildEventListener mChildEventListener; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // get the listview myList=(ExpandableListView)findViewById(R.id.Explist); prepareListData(); myAdapter= new ExpandableListAdapter(this,listDataHeader,listDataChild); myList.setAdapter(myAdapter); } private void prepareListData(){ mFirebaseDatabase= FirebaseDatabase.getInstance(); mDatabaseReference = mFirebaseDatabase.getReference().child("category"); //Read […]

当我按ListView项时,请保持突出显示

当我在2 o 3秒内选择一个ListView的元素,然后将手指移动到其他元素并停止按下时,所选的第一个元素始终保持高亮。 我该如何解决这个问题? 谢谢!!! 我忘了说,使用的语言是Kotlin: lvLevels.setOnItemClickListener { adapterView, v, i, l -> Log.i(TAG, "${mapLevels[levelsNameList[i]]}") GlobalStatus.level = mapLevels[levelsNameList[i]] Log.i(TAG, "Prueba level -> ${GlobalStatus.level}") GlobalStatus.levelNumber = i + 1 val intent = Intent(this@LevelsActivity, TheoryActivity::class.java) startActivity(intent) } apdapter: class LevelAdapter(context: Context?, levels: List<String>) : ArrayAdapter<String>(context, R.layout.listitem_levels, levels) { val TAG = javaClass.simpleName val levelsList: List<String> = levels […]

如何以编程方式在约束布局中添加视图?

我正在设计下面的布局 <android.support.constraint.ConstraintLayout android:id="@+id/before_breakfast_option" android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:id="@+id/diabetes_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="16dp" android:layout_marginStart="16dp" android:text="water" android:textAppearance="@style/TextAppearance.AppCompat.Medium" android:textColor="@color/black" app:layout_constraintBaseline_toBaselineOf="@+id/toogle_diabeties" app:layout_constraintLeft_toLeftOf="parent"/> <TextView android:textColor="@color/black" android:text="almonds" app:layout_constraintTop_toTopOf="parent" android:id="@+id/toogle_diabeties" app:layout_constraintRight_toRightOf="parent" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </android.support.constraint.ConstraintLayout> 使用下面的代码: var textView= TextView(this@DietStepFive) textView.id=100 textView.text="water" textView.background=ContextCompat.getDrawable(this@DietStepFive,R.drawable.rectangle_diet) textView.setTextColor(ContextCompat.getColor(this@DietStepFive,R.color.black)) var textView1= TextView(this@DietStepFive) textView1.id=101 textView1.text="almonds" textView1.background=ContextCompat.getDrawable(this@DietStepFive,R.drawable.rectangle_diet) textView1.setTextColor(ContextCompat.getColor(this@DietStepFive,R.color.black)) var constraintset= ConstraintSet() constraintset.clone(before_breakfast_option) //left to left of constraintset.connect(textView.id,ConstraintSet.LEFT,ConstraintSet.PARENT_ID,ConstraintSet.LEFT,0) //baseline constraintset.connect(textView.id,ConstraintSet.BASELINE,textView1.id,ConstraintSet.BASELINE,0) //right to right of […]

手柄按钮被长按

我希望我的kotlin活动在长时间按下按钮时执行一个动作,而不是在“快速”点击之后进行反应。 什么是最好的办法呢?

Kotlin Android扩展视图背后的编辑魔法是什么?

将kotlinx.android.synthetic.main.<layout-name>.view.*格式的输入添加到Kotlin源代码时,它会改变Android Studio编辑器的行为。 具体来说,它现在认为任何类型的属性View有一个属性对应的布局文件中的每个视图分配一个ID。 我假设我正在做一个不是 Activity或Fragment 。 例如,假设我在源文件中声明了一个ViewHolder ,并向其中添加了一个名为x的View属性。 进一步说,我有一个名为item_test的布局,其中有三个视图声明已经分配了id, a , b和c 。 当我添加一个布局名称 item_test上面的表单的综合导入突然x有三个新的属性, a , b和c 。 或者,更正确地说,编辑器使得它看起来好像x具有这些属性。 经过一番研究,我得出以下结论: 盲目地添加布局视图ID作为属性。 任何由这样一个综合导入暗示的视图id被添加到View类型的任何属性(或View的子类)中。 这包括由类继承的这种类型的属性。 由于属性是盲目添加的,因此开发者有义务确保在合成属性被访问之前分配对应于合成导入的运行时视图,否则将引发异常。 如果在一个文件中指定了两个或多个这样的导入,那么他们的view ID的联合会被盲目地添加到View类型的所有类属性中。 允许多次导入的目的是解释一个布局文件包含另一个布局文件的情况。 这些结论是正确的吗? 围绕这个特性的实现还有其他有趣的细节吗? 我正在使用kotlin-gradle-plugin的版本1.1.2-5。